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: Russ Cox <rsc@golang.org>
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")
}
+
+// 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")
+}
func builderPrintTest(b *work.Builder, a *work.Action) error {
clean := a.Deps[0]
run := clean.Deps[0]
- os.Stdout.Write(run.TestOutput.Bytes())
- run.TestOutput = nil
+ if run.TestOutput != nil {
+ os.Stdout.Write(run.TestOutput.Bytes())
+ run.TestOutput = nil
+ }
return nil
}