aboutsummaryrefslogtreecommitdiff
path: root/src/testing/testing.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/testing.go')
-rw-r--r--src/testing/testing.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/testing/testing.go b/src/testing/testing.go
index 81268ec61f..7e86faf950 100644
--- a/src/testing/testing.go
+++ b/src/testing/testing.go
@@ -372,6 +372,7 @@ import (
"errors"
"flag"
"fmt"
+ "internal/goexperiment"
"internal/race"
"io"
"math/rand"
@@ -420,6 +421,7 @@ func Init() {
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 `file`")
+ gocoverdir = flag.String("test.gocoverdir", "", "write coverage intermediate files to this directory")
matchList = flag.String("test.list", "", "list tests, examples, and benchmarks matching `regexp` then exit")
match = flag.String("test.run", "", "run only tests and examples matching `regexp`")
skip = flag.String("test.skip", "", "do not list or run tests matching `regexp`")
@@ -450,6 +452,7 @@ var (
chatty *bool
count *uint
coverProfile *string
+ gocoverdir *string
matchList *string
match *string
skip *string
@@ -578,6 +581,9 @@ func Short() bool {
// values are "set", "count", or "atomic". The return value will be
// empty if test coverage is not enabled.
func CoverMode() string {
+ if goexperiment.CoverageRedesign {
+ return cover2.mode
+ }
return cover.Mode
}
@@ -1942,10 +1948,14 @@ func (m *M) before() {
if *mutexProfile != "" && *mutexProfileFraction >= 0 {
runtime.SetMutexProfileFraction(*mutexProfileFraction)
}
- if *coverProfile != "" && cover.Mode == "" {
+ if *coverProfile != "" && CoverMode() == "" {
fmt.Fprintf(os.Stderr, "testing: cannot use -test.coverprofile because test binary was not built with coverage enabled\n")
os.Exit(2)
}
+ if *gocoverdir != "" && CoverMode() == "" {
+ fmt.Fprintf(os.Stderr, "testing: cannot use -test.gocoverdir because test binary was not built with coverage enabled\n")
+ os.Exit(2)
+ }
if *testlog != "" {
// Note: Not using toOutputDir.
// This file is for use by cmd/go, not users.
@@ -2039,7 +2049,7 @@ func (m *M) writeProfiles() {
}
f.Close()
}
- if cover.Mode != "" {
+ if CoverMode() != "" {
coverReport()
}
}