Commit 95322a3a authored by Than McIntosh's avatar Than McIntosh

cmd/go: avoid crashing on 'go test -n'

Fix a buglet in the go command support for 'go test -n': check for
nil output buffer in action routine.

Fixes #22644

Change-Id: I2566e3bb3d53d0324c4ddd6fec5d30224bf290df
Reviewed-on: https://go-review.googlesource.com/76710
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarRuss Cox <rsc@golang.org>
parent 2f53fb58
...@@ -5060,3 +5060,12 @@ func TestGcflagsPatterns(t *testing.T) { ...@@ -5060,3 +5060,12 @@ func TestGcflagsPatterns(t *testing.T) {
tg.grepStderr("compile.* -N .*-p reflect", "did not build reflect with -N flag") tg.grepStderr("compile.* -N .*-p reflect", "did not build reflect with -N flag")
tg.grepStderrNot("compile.* -N .*-p fmt", "incorrectly built fmt with -N flag") tg.grepStderrNot("compile.* -N .*-p fmt", "incorrectly built fmt with -N flag")
} }
// Issue 22644
func TestGoTestMinusN(t *testing.T) {
// Intent here is to verify that 'go test -n' works without crashing.
// This reuses flag_test.go, but really any test would do.
tg := testgo(t)
defer tg.cleanup()
tg.run("test", "testdata/flag_test.go", "-n", "-args", "-v=7")
}
...@@ -1472,8 +1472,10 @@ func builderCleanTest(b *work.Builder, a *work.Action) error { ...@@ -1472,8 +1472,10 @@ func builderCleanTest(b *work.Builder, a *work.Action) error {
func builderPrintTest(b *work.Builder, a *work.Action) error { func builderPrintTest(b *work.Builder, a *work.Action) error {
clean := a.Deps[0] clean := a.Deps[0]
run := clean.Deps[0] run := clean.Deps[0]
os.Stdout.Write(run.TestOutput.Bytes()) if run.TestOutput != nil {
run.TestOutput = nil os.Stdout.Write(run.TestOutput.Bytes())
run.TestOutput = nil
}
return nil return nil
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment