diff options
| author | Russ Cox <rsc@golang.org> | 2017-06-16 14:46:24 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2017-06-20 14:19:05 +0000 |
| commit | a2a3ace51aa0600765d44a71f47fd830fa6217c5 (patch) | |
| tree | a26628d8938b71fcd9132f9f10a6c6d7931059d6 /src/testing/testing.go | |
| parent | be855e3f28507dd3e34eb4699c84493eeaae68db (diff) | |
| download | go-a2a3ace51aa0600765d44a71f47fd830fa6217c5.tar.xz | |
testing: harmonize handling of prefix-matched benchmarks
If you have BenchmarkX1 with sub-benchmark Y
and you have BenchmarkX2 with no sub-benchmarks,
then
go test -bench=X/Y
runs BenchmarkX1 once with b.N=1 (to find out about Y)
and then not again, because it has sub-benchmarks,
but arguably also because we're interested in Y.
In contrast, it runs BenchmarkX2 in full, even though clearly
that is not relevant to the match X/Y. We do have to run X2
once with b.N=1 to probe for having X2/Y, but we should not
run it with larger b.N.
Fixes #20589.
Change-Id: Ib86907e844f34dcaac6cd05757f57db1019201d0
Reviewed-on: https://go-review.googlesource.com/46031
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
Diffstat (limited to 'src/testing/testing.go')
| -rw-r--r-- | src/testing/testing.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/testing/testing.go b/src/testing/testing.go index fa6c36c6d3..96c34a5aea 100644 --- a/src/testing/testing.go +++ b/src/testing/testing.go @@ -763,7 +763,7 @@ func tRunner(t *T, fn func(t *T)) { // must happen before the outer test function for t returns. func (t *T) Run(name string, f func(t *T)) bool { atomic.StoreInt32(&t.hasSub, 1) - testName, ok := t.context.match.fullName(&t.common, name) + testName, ok, _ := t.context.match.fullName(&t.common, name) if !ok { return true } |
