From 594a6bde3336cc6f0cd14256e980370c56c72a90 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 16 May 2018 19:29:59 +0000 Subject: [PATCH] cmd/dist: add support for disabling test -short mode So we can have builders running go test -short=false. Updates golang/go#12508 Change-Id: If90f0f6d9f89268c33b1d1876139ad551fecd3d8 Reviewed-on: https://go-review.googlesource.com/113435 Reviewed-by: Josh Bleecher Snyder Reviewed-by: Bryan C. Mills Reviewed-by: Ian Lance Taylor --- src/cmd/dist/test.go | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go index 3bf74c8c7e9211..5bd5b424afbd6a 100644 --- a/src/cmd/dist/test.go +++ b/src/cmd/dist/test.go @@ -234,12 +234,32 @@ 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 +// 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. +func short() string { + if v := os.Getenv("GO_TEST_SHORT"); v != "" { + short, err := strconv.ParseBool(v) + if err != nil { + log.Fatalf("invalid GO_TEST_SHORT %q: %v", v, err) + } + if !short { + return "-short=false" + } + } + return "-short" +} + // goTest returns the beginning of the go test command line. // Callers should use goTest and then pass flags overriding these // 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(), "-count=1", t.tags(), t.runFlag(""), } } @@ -295,7 +315,7 @@ func (t *tester) registerStdTest(pkg string) { args := []string{ "test", - "-short", + short(), t.tags(), t.timeout(timeoutSec), "-gcflags=all=" + gogcflags, @@ -333,7 +353,7 @@ func (t *tester) registerRaceBenchTest(pkg string) { ranGoBench = true args := []string{ "test", - "-short", + short(), "-race", "-run=^$", // nothing. only benchmarks. "-benchtime=.1s",