cmd/go: stream test output if parallelism is set to 1.
"go test -v" buffers output if more than one package is
being tested to avoid mixing the outputs from multiple
tests running in parallel. It currently enables streaming
if there's only a single package under test.
It is ok to stream output from multiple tests if we know
that they're not going to be running in parallel.
To see the difference: go test -v -p=1 runtime fmt -short
Change-Id: Idc24575c899eac30d553e0bf52b86f90e189392d
Reviewed-on: https://go-review.googlesource.com/4153
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/cmd/go/test.go b/src/cmd/go/test.go
index 60f6b16..a8110f3 100644
--- a/src/cmd/go/test.go
+++ b/src/cmd/go/test.go
@@ -346,11 +346,11 @@
// been given on the command line (implicit current directory)
// or when benchmarking.
// Also stream if we're showing output anyway with a
- // single package under test. In that case, streaming the
- // output produces the same result as not streaming,
- // just more immediately.
+ // single package under test or if parallelism is set to 1.
+ // In these cases, streaming the output produces the same result
+ // as not streaming, just more immediately.
testStreamOutput = len(pkgArgs) == 0 || testBench ||
- (len(pkgs) <= 1 && testShowPass)
+ (testShowPass && (len(pkgs) == 1 || buildP == 1))
var b builder
b.init()