Run benchmarks matching the regular expression.
By default, no benchmarks run.
- -test.example pattern
- Run examples matching the regular expression.
- By default, all examples run, but if -test.run is set,
- no examples are run.
-
-test.cpuprofile cpu.out
Write a CPU profile to the specified file before exiting.
-benchtime=1: passes -test.benchtime to test
-cpu="": passes -test.cpu to test
-cpuprofile="": passes -test.cpuprofile to test
- -example="": passes -test.example to test
-memprofile="": passes -test.memprofile to test
-memprofilerate=0: passes -test.memprofilerate to test
-parallel=0: passes -test.parallel to test
{name: "benchtime", passToTest: true},
{name: "cpu", passToTest: true},
{name: "cpuprofile", passToTest: true},
- {name: "example", passToTest: true},
{name: "memprofile", passToTest: true},
{name: "memprofilerate", passToTest: true},
{name: "parallel", passToTest: true},
import (
"bytes"
- "flag"
"fmt"
"io"
"os"
"time"
)
-var matchExamples = flag.String("test.example", "", "regular expression to select examples to run")
-
type InternalExample struct {
Name string
F func()
}
func RunExamples(matchString func(pat, str string) (bool, error), examples []InternalExample) (ok bool) {
- if *match != "" && *matchExamples == "" {
- return // Don't run examples if testing is restricted: we're debugging.
- }
ok = true
var eg InternalExample
stdout, stderr := os.Stdout, os.Stderr
for _, eg = range examples {
- matched, err := matchString(*matchExamples, eg.Name)
+ matched, err := matchString(*match, eg.Name)
if err != nil {
- fmt.Fprintf(os.Stderr, "testing: invalid regexp for -test.example: %s\n", err)
+ fmt.Fprintf(os.Stderr, "testing: invalid regexp for -test.run: %s\n", err)
os.Exit(1)
}
if !matched {
// Report as tests are run; default is silent for success.
chatty = flag.Bool("test.v", false, "verbose: print additional output")
- match = flag.String("test.run", "", "regular expression to select tests to run")
+ 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")
memProfileRate = flag.Int("test.memprofilerate", 0, "if >=0, sets runtime.MemProfileRate")
cpuProfile = flag.String("test.cpuprofile", "", "write a cpu profile to the named file during execution")