mirror of
https://github.com/golang/go
synced 2024-11-18 04:14:49 -07:00
testing: add -test.count flag to run tests and benchmarks multiple times
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>
This commit is contained in:
parent
de305a197f
commit
fddc3ca11c
@ -1135,6 +1135,11 @@ control the execution of any test:
|
||||
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.
|
||||
|
||||
|
@ -141,6 +141,11 @@ control the execution of any test:
|
||||
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.
|
||||
|
||||
|
@ -55,6 +55,7 @@ var testFlagDefn = []*testFlagSpec{
|
||||
{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},
|
||||
|
@ -172,6 +172,7 @@ var (
|
||||
|
||||
// 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")
|
||||
@ -724,9 +725,13 @@ func parseCpuList() {
|
||||
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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user