1
0
mirror of https://github.com/golang/go synced 2024-11-17 20:24:46 -07:00

testing: do not print 'root' benchName during test of package testing

$ cd $GOROOT/src/testing
	$ go test
	root
	root
	root
	root
	PASS
	$

The root prints have been happening since Go 1.14.
There is a test in sub_test.go that calls b.Run directly
with a benchmark named "root", which triggers the print.
Silence them.

Change-Id: I2f0c186f04c6139bc24fab0e91975fcf0a8e80fc
Reviewed-on: https://go-review.googlesource.com/c/go/+/421437
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
Russ Cox 2022-08-05 14:30:20 -04:00
parent b565476e2c
commit bd3c35e732
2 changed files with 12 additions and 1 deletions

View File

@ -615,6 +615,11 @@ func (ctx *benchContext) processBench(b *B) {
}
}
// If hideStdoutForTesting is true, Run does not print the benchName.
// This avoids a spurious print during 'go test' on package testing itself,
// which invokes b.Run in its own tests (see sub_test.go).
var hideStdoutForTesting = false
// Run benchmarks f as a subbenchmark with the given name. It reports
// whether there were any failures.
//
@ -670,7 +675,9 @@ func (b *B) Run(name string, f func(b *B)) bool {
}
})
fmt.Println(benchName)
if !hideStdoutForTesting {
fmt.Println(benchName)
}
}
if sub.run1() {

View File

@ -657,6 +657,10 @@ func TestBRun(t *T) {
}
},
}}
hideStdoutForTesting = true
defer func() {
hideStdoutForTesting = false
}()
for _, tc := range testCases {
t.Run(tc.desc, func(t *T) {
var ok bool