aboutsummaryrefslogtreecommitdiff
path: root/src/testing/benchmark.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/benchmark.go')
-rw-r--r--src/testing/benchmark.go15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/testing/benchmark.go b/src/testing/benchmark.go
index a5b163201e..b092a9d9e2 100644
--- a/src/testing/benchmark.go
+++ b/src/testing/benchmark.go
@@ -49,7 +49,7 @@ type B struct {
N int
previousN int // number of iterations in the previous run
previousDuration time.Duration // total duration of the previous run
- benchmark InternalBenchmark
+ benchFunc func(b *B)
bytes int64
timerOn bool
showAllocResult bool
@@ -132,7 +132,7 @@ func (b *B) runN(n int) {
b.parallelism = 1
b.ResetTimer()
b.StartTimer()
- b.benchmark.F(b)
+ b.benchFunc(b)
b.StopTimer()
b.previousN = n
b.previousDuration = b.duration
@@ -204,7 +204,7 @@ func (b *B) launch() {
// Signal that we're done whether we return normally
// or by FailNow's runtime.Goexit.
defer func() {
- b.signal <- b
+ b.signal <- true
}()
b.runN(n)
@@ -339,9 +339,10 @@ func runBenchmarksInternal(matchString func(pat, str string) (bool, error), benc
runtime.GOMAXPROCS(procs)
b := &B{
common: common{
- signal: make(chan interface{}),
+ signal: make(chan bool),
+ name: Benchmark.Name,
},
- benchmark: Benchmark,
+ benchFunc: Benchmark.F,
}
benchName := benchmarkName(Benchmark.Name, procs)
fmt.Printf("%-*s\t", maxlen, benchName)
@@ -476,9 +477,9 @@ func (b *B) SetParallelism(p int) {
func Benchmark(f func(b *B)) BenchmarkResult {
b := &B{
common: common{
- signal: make(chan interface{}),
+ signal: make(chan bool),
},
- benchmark: InternalBenchmark{"", f},
+ benchFunc: f,
}
return b.run()
}