aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/dist/test.go15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
index 78213a7a55..b09c3f2ce8 100644
--- a/src/cmd/dist/test.go
+++ b/src/cmd/dist/test.go
@@ -30,6 +30,8 @@ func cmdtest() {
var t tester
+ t.asmflags = os.Getenv("GO_TEST_ASMFLAGS")
+
var noRebuild bool
flag.BoolVar(&t.listMode, "list", false, "list available tests")
flag.BoolVar(&t.rebuild, "rebuild", false, "rebuild everything first")
@@ -63,6 +65,10 @@ type tester struct {
failed bool
keepGoing bool
compileOnly bool // just try to compile all tests, but no need to run
+ short bool
+ cgoEnabled bool
+ asmflags string
+ json bool
runRxStr string
runRx *regexp.Regexp
runRxWant bool // want runRx to match (true) or not match (false)
@@ -70,10 +76,6 @@ type tester struct {
banner string // prefix, or "" for none
lastHeading string // last dir heading printed
- short bool
- cgoEnabled bool
- json bool
-
tests []distTest // use addTest to extend
testNames map[string]bool
timeoutScale int
@@ -478,6 +480,9 @@ func (opts *goTest) buildArgs(t *tester) (build, run, pkgs, testFlags []string,
if opts.ldflags != "" {
build = append(build, "-ldflags="+opts.ldflags)
}
+ if t.asmflags != "" {
+ build = append(build, "-asmflags="+t.asmflags)
+ }
if opts.buildmode != "" {
build = append(build, "-buildmode="+opts.buildmode)
}
@@ -806,7 +811,7 @@ func (t *tester) registerTests() {
}
// Spectre mitigation smoke test.
- if goos == "linux" && goarch == "amd64" {
+ if goos == "linux" && goarch == "amd64" && !(gogcflags == "-spectre=all" && t.asmflags == "all=-spectre=all") {
// Pick a bunch of packages known to have some assembly.
pkgs := []string{"internal/runtime/...", "reflect", "crypto/..."}
if !t.short {