From: Russ Cox Date: Fri, 5 Aug 2022 18:30:20 +0000 (-0400) Subject: testing: do not print 'root' benchName during test of package testing X-Git-Tag: go1.20rc1~1620 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=bd3c35e732ba3f4b6cbdf5d661120d11b59794bc;p=gostls13.git 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 Reviewed-by: Ian Lance Taylor TryBot-Result: Gopher Robot --- diff --git a/src/testing/benchmark.go b/src/testing/benchmark.go index d8ec217f66..4fee421d39 100644 --- a/src/testing/benchmark.go +++ b/src/testing/benchmark.go @@ -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() { diff --git a/src/testing/sub_test.go b/src/testing/sub_test.go index 6324d463cf..bb1715b23f 100644 --- a/src/testing/sub_test.go +++ b/src/testing/sub_test.go @@ -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