From: Bryan Mills Date: Thu, 21 Apr 2022 13:22:59 +0000 (+0000) Subject: Revert "cmd/go/internal/test: wrap os.Stdout always" X-Git-Tag: go1.19beta1~609 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=115852077f45141b293727558e61c0804661d328;p=gostls13.git Revert "cmd/go/internal/test: wrap os.Stdout always" This reverts CL 400877. Reason for revert: broke TestScript/test_output_wait and the regression test for #18153 on certain builders. Fixes #52461. Change-Id: I98627ce5e22088b0784be502c459480c41ba353a Reviewed-on: https://go-review.googlesource.com/c/go/+/401494 Reviewed-by: Daniel Martí Run-TryBot: Daniel Martí TryBot-Result: Gopher Robot Auto-Submit: Bryan Mills Reviewed-by: Michael Pratt --- diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go index f2d2290dbb..50e6d5201b 100644 --- a/src/cmd/go/internal/test/test.go +++ b/src/cmd/go/internal/test/test.go @@ -1261,11 +1261,7 @@ func (c *runCache) builderRunTest(b *work.Builder, ctx context.Context, a *work. return nil } - // The os/exec package treats an *os.File differently to an io.Writer. - // Embed os.Stdout in an io.Writer struct so that we get the same - // behavior regardless of whether we wrap it below. - // See golang.org/issue/24050 - var stdout io.Writer = struct{ io.Writer }{os.Stdout} + var stdout io.Writer = os.Stdout var err error if testJSON { json := test2json.NewConverter(lockedStdout{}, a.Package.ImportPath, test2json.Timestamp) diff --git a/src/cmd/go/testdata/script/test_output_wait.txt b/src/cmd/go/testdata/script/test_output_wait.txt deleted file mode 100644 index 878b108612..0000000000 --- a/src/cmd/go/testdata/script/test_output_wait.txt +++ /dev/null @@ -1,35 +0,0 @@ -# Wait for test output from sub-processes whether or not the package name is -# provided on the command-line. -go test -v -stdout 'PASS\s+WAIT\s+ok' -go test -v . -stdout 'PASS\s+WAIT\s+ok' - --- go.mod -- -module x - --- x_test.go -- -package x - -import ( - "os" - "os/exec" - "testing" -) - -func TestMain(m *testing.M) { - if os.Getenv("WAIT") == "true" { - os.Stdout.Write([]byte("WAIT\n")) - return - } - m.Run() -} - -func TestWait(t *testing.T) { - cmd := exec.Command(os.Args[0]) - cmd.Env = []string{"WAIT=true"} - cmd.Stdout = os.Stdout - if err := cmd.Start(); err != nil { - t.Fatal(err) - } -}