The flag is available from the go test command as -count:
% go test -run XXX -bench . -count 3
PASS
BenchmarkSprintfEmpty
30000000 54.0 ns/op
BenchmarkSprintfEmpty
30000000 51.9 ns/op
BenchmarkSprintfEmpty
30000000 53.8 ns/op
BenchmarkSprintfString
10000000 238 ns/op
BenchmarkSprintfString
10000000 239 ns/op
BenchmarkSprintfString
10000000 234 ns/op
BenchmarkSprintfInt
10000000 232 ns/op
BenchmarkSprintfInt
10000000 226 ns/op
BenchmarkSprintfInt
10000000 225 ns/op
...
If -cpu is set, each test is run n times for each cpu value.
Original by r (CL 10663).
Change-Id: If3dfbdf21698952daac9249b5dbca66f5301e91b
Reviewed-on: https://go-review.googlesource.com/10669
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
if -test.blockprofile is set without this flag, all blocking events
are recorded, equivalent to -test.blockprofilerate=1.
+ -count n
+ Run each test and benchmark n times (default 1).
+ If -cpu is set, run n times for each GOMAXPROCS value.
+ Examples are always run once.
+
-cover
Enable coverage analysis.
if -test.blockprofile is set without this flag, all blocking events
are recorded, equivalent to -test.blockprofilerate=1.
+ -count n
+ Run each test and benchmark n times (default 1).
+ If -cpu is set, run n times for each GOMAXPROCS value.
+ Examples are always run once.
+
-cover
Enable coverage analysis.
{name: "bench", passToTest: true},
{name: "benchmem", boolVar: new(bool), passToTest: true},
{name: "benchtime", passToTest: true},
+ {name: "count", passToTest: true},
{name: "coverprofile", passToTest: true},
{name: "cpu", passToTest: true},
{name: "cpuprofile", passToTest: true},
// Report as tests are run; default is silent for success.
chatty = flag.Bool("test.v", false, "verbose: print additional output")
+ count = flag.Uint("test.count", 1, "run tests and benchmarks `n` times")
coverProfile = flag.String("test.coverprofile", "", "write a coverage profile to the named file after execution")
match = flag.String("test.run", "", "regular expression to select tests and examples to run")
memProfile = flag.String("test.memprofile", "", "write a memory profile to the named file after execution")
fmt.Fprintf(os.Stderr, "testing: invalid value %q for -test.cpu\n", val)
os.Exit(1)
}
- cpuList = append(cpuList, cpu)
+ for i := uint(0); i < *count; i++ {
+ cpuList = append(cpuList, cpu)
+ }
}
if cpuList == nil {
- cpuList = append(cpuList, runtime.GOMAXPROCS(-1))
+ for i := uint(0); i < *count; i++ {
+ cpuList = append(cpuList, runtime.GOMAXPROCS(-1))
+ }
}
}