diff options
| author | Austin Clements <austin@google.com> | 2024-12-12 21:18:44 -0500 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-12-15 21:41:28 -0800 |
| commit | 18b5435fc84225ca303da7a110c7e8065dc4bbda (patch) | |
| tree | 4bb176871845b4915735325b8c703cc0fc000ce6 /src/testing/loop_test.go | |
| parent | c1f2542c8bef27872a95efd7904afeeee36fe976 (diff) | |
| download | go-18b5435fc84225ca303da7a110c7e8065dc4bbda.tar.xz | |
testing: don't measure cleanup time after B.Loop
B.Loop resets the timer on the first iteration so that setup code
isn't measured, but it currently leaves the timer running after the
last iteration, meaning that cleanup code will still be measured. Fix
this by stopping the timer when B.Loop returns false to indicate the
end of the benchmark.
Updates #61515
Change-Id: I0e0502cb2ce3c24cf872682b88d74e8be2c4529b
Reviewed-on: https://go-review.googlesource.com/c/go/+/635898
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Auto-Submit: Austin Clements <austin@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/testing/loop_test.go')
| -rw-r--r-- | src/testing/loop_test.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/testing/loop_test.go b/src/testing/loop_test.go index ae1a5e019b..7a1a93fcee 100644 --- a/src/testing/loop_test.go +++ b/src/testing/loop_test.go @@ -8,6 +8,7 @@ func TestBenchmarkBLoop(t *T) { var initialStart highPrecisionTime var firstStart highPrecisionTime var lastStart highPrecisionTime + var runningEnd bool runs := 0 iters := 0 finalBN := 0 @@ -22,6 +23,7 @@ func TestBenchmarkBLoop(t *T) { iters++ } finalBN = b.N + runningEnd = b.timerOn }) // Verify that a b.Loop benchmark is invoked just once. if runs != 1 { @@ -46,6 +48,10 @@ func TestBenchmarkBLoop(t *T) { if lastStart != firstStart { t.Errorf("timer was reset during iteration") } + // Verify that it stopped the timer after the last loop. + if runningEnd { + t.Errorf("timer was still running after last iteration") + } } // See also TestBenchmarkBLoop* in other files. |
