# Test the following:
-# TestX is run, twice
+# TestX is run, twice
stdout -count=2 '^=== RUN TestX$'
stdout -count=2 '^ TestX: x_test.go:6: LOG: X running$'
-# TestX/Y is run, twice
+# TestX/Y is run, twice
stdout -count=2 '^=== RUN TestX/Y$'
stdout -count=2 '^ TestX/Y: x_test.go:8: LOG: Y running$'
-# TestXX is run, twice
+# TestXX is run, twice
stdout -count=2 '^=== RUN TestXX$'
stdout -count=2 '^ TestXX: z_test.go:10: LOG: XX running'
-# TestZ is not run
+# TestZ is not run
! stdout '^=== RUN TestZ$'
-# BenchmarkX is run but only with N=1, once
-stdout -count=1 '^ BenchmarkX: x_test.go:13: LOG: X running N=1$'
-! stdout '^ BenchmarkX: x_test.go:13: LOG: X running N=10$'
+# BenchmarkX is run with N=1 once, only to discover what sub-benchmarks it has,
+# and should not print a final summary line.
+stdout -count=1 '^\s+BenchmarkX: x_test.go:13: LOG: X running N=1$'
+! stdout '^\s+BenchmarkX: x_test.go:13: LOG: X running N=\d\d+'
+! stdout 'BenchmarkX\s+\d+'
-# BenchmarkXX is run but only with N=1, once
-stdout -count=1 '^ BenchmarkXX: z_test.go:18: LOG: XX running N=1$'
-! stdout '^ BenchmarkXX: z_test.go:18: LOG: XX running N=10$'
+# Same for BenchmarkXX.
+stdout -count=1 '^\s+BenchmarkXX: z_test.go:18: LOG: XX running N=1$'
+! stdout '^\s+BenchmarkXX: z_test.go:18: LOG: XX running N=\d\d+'
+! stdout 'BenchmarkXX\s+\d+'
-# BenchmarkX/Y is run in full, twice
-stdout -count=2 ' BenchmarkX/Y: x_test.go:15: LOG: Y running N=1\n BenchmarkX/Y: x_test.go:15: LOG: Y running N=100\n BenchmarkX/Y: x_test.go:15: LOG: Y running N=10000\n BenchmarkX/Y: x_test.go:15: LOG: Y running N=1000000\n BenchmarkX/Y: x_test.go:15: LOG: Y running N=100000000\n BenchmarkX/Y: x_test.go:15: LOG: Y running N=1000000000'
+# BenchmarkX/Y is run in full twice due to -count=2.
+# "Run in full" means that it runs for approximately the default benchtime,
+# but may cap out at N=1e9.
+# We don't actually care what the final iteration count is, but it should be
+# a large number, and the last iteration count prints right before the results.
+stdout -count=2 '^\s+BenchmarkX/Y: x_test.go:15: LOG: Y running N=[1-9]\d{4,}\nBenchmarkX/Y\s+\d+'
-- testregexp/x_test.go --
package x
func BenchmarkXX(b *testing.B) {
b.Logf("LOG: XX running N=%d", b.N)
-}
\ No newline at end of file
+}