1
0
mirror of https://github.com/golang/go synced 2024-11-18 10:44:45 -07:00

os/exec: preserve the process environment when invoking TestHelperProcess

Also log errors from the lsof command on failure.
(That's how the missing environment was discovered.)

Updates #25628

Change-Id: I71594f60c15d0d254d5d4a86deec7431314c92ff
Reviewed-on: https://go-review.googlesource.com/c/go/+/201717
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Bryan C. Mills 2019-10-17 09:45:54 -04:00
parent 86235ec2bf
commit 00ea8e1c67

View File

@ -40,7 +40,7 @@ func helperCommandContext(t *testing.T, ctx context.Context, s ...string) (cmd *
} else {
cmd = exec.Command(os.Args[0], cs...)
}
cmd.Env = []string{"GO_WANT_HELPER_PROCESS=1"}
cmd.Env = append(os.Environ(), "GO_WANT_HELPER_PROCESS=1")
return cmd
}
@ -656,7 +656,7 @@ func TestExtraFiles(t *testing.T) {
c.ExtraFiles = []*os.File{tf}
err = c.Run()
if err != nil {
t.Fatalf("Run: %v; stdout %q, stderr %q", err, stdout.Bytes(), stderr.Bytes())
t.Fatalf("Run: %v\n--- stdout:\n%s--- stderr:\n%s", err, stdout.Bytes(), stderr.Bytes())
}
if stdout.String() != text {
t.Errorf("got stdout %q, stderr %q; want %q on stdout", stdout.String(), stderr.String(), text)
@ -861,8 +861,12 @@ func TestHelperProcess(*testing.T) {
default:
args = []string{"-p", fmt.Sprint(os.Getpid())}
}
out, _ := exec.Command(ofcmd, args...).CombinedOutput()
fmt.Print(string(out))
cmd := exec.Command(ofcmd, args...)
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Fprintf(os.Stderr, "%s failed: %v\n", strings.Join(cmd.Args, " "), err)
}
fmt.Printf("%s", out)
os.Exit(1)
}
files = append(files, f)