aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/go/internal/test')
-rw-r--r--src/cmd/go/internal/test/flagdefs_test.go11
-rw-r--r--src/cmd/go/internal/test/genflags.go7
-rw-r--r--src/cmd/go/internal/test/test.go3
3 files changed, 14 insertions, 7 deletions
diff --git a/src/cmd/go/internal/test/flagdefs_test.go b/src/cmd/go/internal/test/flagdefs_test.go
index 7562415298..ab5440b380 100644
--- a/src/cmd/go/internal/test/flagdefs_test.go
+++ b/src/cmd/go/internal/test/flagdefs_test.go
@@ -16,9 +16,14 @@ func TestPassFlagToTestIncludesAllTestFlags(t *testing.T) {
return
}
name := strings.TrimPrefix(f.Name, "test.")
- if name != "testlogfile" && !passFlagToTest[name] {
- t.Errorf("passFlagToTest missing entry for %q (flag test.%s)", name, name)
- t.Logf("(Run 'go generate cmd/go/internal/test' if it should be added.)")
+ switch name {
+ case "testlogfile", "paniconexit0":
+ // These are internal flags.
+ default:
+ if !passFlagToTest[name] {
+ t.Errorf("passFlagToTest missing entry for %q (flag test.%s)", name, name)
+ t.Logf("(Run 'go generate cmd/go/internal/test' if it should be added.)")
+ }
}
})
diff --git a/src/cmd/go/internal/test/genflags.go b/src/cmd/go/internal/test/genflags.go
index 512fa1671e..5e83d53980 100644
--- a/src/cmd/go/internal/test/genflags.go
+++ b/src/cmd/go/internal/test/genflags.go
@@ -62,9 +62,10 @@ func testFlags() []string {
}
name := strings.TrimPrefix(f.Name, "test.")
- if name == "testlogfile" {
- // test.testlogfile is “for use only by cmd/go”
- } else {
+ switch name {
+ case "testlogfile", "paniconexit0":
+ // These flags are only for use by cmd/go.
+ default:
names = append(names, name)
}
})
diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go
index 3aee6939d2..1ea6d2881e 100644
--- a/src/cmd/go/internal/test/test.go
+++ b/src/cmd/go/internal/test/test.go
@@ -1164,7 +1164,8 @@ func (c *runCache) builderRunTest(b *work.Builder, ctx context.Context, a *work.
if !c.disableCache && len(execCmd) == 0 {
testlogArg = []string{"-test.testlogfile=" + a.Objdir + "testlog.txt"}
}
- args := str.StringList(execCmd, a.Deps[0].BuiltTarget(), testlogArg, testArgs)
+ panicArg := "-test.paniconexit0"
+ args := str.StringList(execCmd, a.Deps[0].BuiltTarget(), testlogArg, panicArg, testArgs)
if testCoverProfile != "" {
// Write coverage to temporary profile, for merging later.