aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorDmitri Shuralyov <dmitshur@golang.org>2020-05-13 13:57:36 -0400
committerDmitri Shuralyov <dmitshur@golang.org>2020-08-18 17:08:05 +0000
commit20b4987d3e658a1cd93472185d7998f745bd062e (patch)
tree670a39cae5b4ba275badcd2d2f118d2f1ecaef9b /src/cmd
parentb58d29741650c7bf10b17f455666e2727e1cdd2e (diff)
downloadgo-20b4987d3e658a1cd93472185d7998f745bd062e.tar.xz
cmd/dist: use GO_TEST_SHORT value more consistently
There were two places where the -short flag was added in order to speed up tests when run in short mode, in CL 178399 and CL 177417. It appears viable to re-use the GO_TEST_SHORT value so that -short flag is not used when the tests are executed on a longtest builder, where it is not a goal to skip slow tests for improved performance. Do so, in order to make the testing configurations simpler and more predictable. Factor out the flag name out of the string returned by short, so that it can be used in context of 'go test' which can accept a -short flag, and a test binary which requires the use of a longer -test.short flag. For #39054. For #29252. Change-Id: I52dfbef73cc8307735c52e2ebaa609305fb05933 Reviewed-on: https://go-review.googlesource.com/c/go/+/233898 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/dist/test.go24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
index 2dc9459215..a83ae35293 100644
--- a/src/cmd/dist/test.go
+++ b/src/cmd/dist/test.go
@@ -241,13 +241,15 @@ func (t *tester) shouldRunTest(name string) bool {
return false
}
-// short returns a -short flag to pass to 'go test'.
-// It returns "-short", unless the environment variable
+// short returns a -short flag value to use with 'go test'
+// or a test binary for tests intended to run in short mode.
+// It returns "true", unless the environment variable
// GO_TEST_SHORT is set to a non-empty, false-ish string.
//
// This environment variable is meant to be an internal
-// detail between the Go build system and cmd/dist
-// and is not intended for use by users.
+// detail between the Go build system and cmd/dist for
+// the purpose of longtest builders, and is not intended
+// for use by users. See golang.org/issue/12508.
func short() string {
if v := os.Getenv("GO_TEST_SHORT"); v != "" {
short, err := strconv.ParseBool(v)
@@ -255,10 +257,10 @@ func short() string {
fatalf("invalid GO_TEST_SHORT %q: %v", v, err)
}
if !short {
- return "-short=false"
+ return "false"
}
}
- return "-short"
+ return "true"
}
// goTest returns the beginning of the go test command line.
@@ -266,7 +268,7 @@ func short() string {
// defaults as later arguments in the command line.
func (t *tester) goTest() []string {
return []string{
- "go", "test", short(), "-count=1", t.tags(), t.runFlag(""),
+ "go", "test", "-short=" + short(), "-count=1", t.tags(), t.runFlag(""),
}
}
@@ -335,7 +337,7 @@ func (t *tester) registerStdTest(pkg string) {
}
args := []string{
"test",
- short(),
+ "-short=" + short(),
t.tags(),
t.timeout(timeoutSec),
"-gcflags=all=" + gogcflags,
@@ -373,7 +375,7 @@ func (t *tester) registerRaceBenchTest(pkg string) {
ranGoBench = true
args := []string{
"test",
- short(),
+ "-short=" + short(),
"-race",
t.timeout(1200), // longer timeout for race with benchmarks
"-run=^$", // nothing. only benchmarks.
@@ -1069,7 +1071,7 @@ func (t *tester) runHostTest(dir, pkg string) error {
if err := cmd.Run(); err != nil {
return err
}
- return t.dirCmd(dir, f.Name(), "-test.short").Run()
+ return t.dirCmd(dir, f.Name(), "-test.short="+short()).Run()
}
func (t *tester) cgoTest(dt *distTest) error {
@@ -1570,7 +1572,7 @@ func (t *tester) prebuiltGoPackageTestBinary() string {
func (t *tester) runPrecompiledStdTest(timeout time.Duration) error {
bin := t.prebuiltGoPackageTestBinary()
fmt.Fprintf(os.Stderr, "# %s: using pre-built %s...\n", stdMatches[0], bin)
- cmd := exec.Command(bin, "-test.short", "-test.timeout="+timeout.String())
+ cmd := exec.Command(bin, "-test.short="+short(), "-test.timeout="+timeout.String())
cmd.Dir = filepath.Dir(bin)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr