From: thepudds Date: Wed, 21 Jun 2023 18:42:03 +0000 (-0400) Subject: cmd/internal/testdir: print stderr if go list fails while gathering stdlib import... X-Git-Tag: go1.24rc1~203 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a311754d5411c742211a4b56ae3eed00d20898c9;p=gostls13.git cmd/internal/testdir: print stderr if go list fails while gathering stdlib import config If cmd/compile is in an unhappy state, the testdir test can fail with an unhelpful 'exit code 1' log message if 'go list' fails while gathering stdlib import config When running individual files, such as: go test cmd/internal/testdir -run='Test/escape.*.go' This might also happen in other uses, or it might be that a more expansive set of tests such as run.bash might first trigger a more useful error. This change prints stderr and states that it is 'go list' that is having problems to help someone track down the proper issue. Change-Id: Iba658ea139bb9087ab8adb00c9f65080a1b6ee76 Reviewed-on: https://go-review.googlesource.com/c/go/+/524941 Reviewed-by: Matthew Dempsky Reviewed-by: Than McIntosh Auto-Submit: Dmitri Shuralyov Reviewed-by: Russ Cox LUCI-TryBot-Result: Go LUCI Reviewed-by: Dmitri Shuralyov --- diff --git a/src/cmd/internal/testdir/testdir_test.go b/src/cmd/internal/testdir/testdir_test.go index f716e1b697..7469a6491a 100644 --- a/src/cmd/internal/testdir/testdir_test.go +++ b/src/cmd/internal/testdir/testdir_test.go @@ -215,8 +215,11 @@ var stdlibImportcfg = sync.OnceValue(func() string { cmd := exec.Command(goTool, "list", "-export", "-f", "{{if .Export}}packagefile {{.ImportPath}}={{.Export}}{{end}}", "std") cmd.Env = append(os.Environ(), "GOENV=off", "GOFLAGS=") output, err := cmd.Output() + if err, ok := err.(*exec.ExitError); ok && len(err.Stderr) != 0 { + log.Fatalf("'go list' failed: %v: %s", err, err.Stderr) + } if err != nil { - log.Fatal(err) + log.Fatalf("'go list' failed: %v", err) } return string(output) })