]> Cypherpunks repositories - gostls13.git/commitdiff
os/exec: preserve the process environment when invoking TestHelperProcess
authorBryan C. Mills <bcmills@google.com>
Thu, 17 Oct 2019 13:45:54 +0000 (09:45 -0400)
committerBryan C. Mills <bcmills@google.com>
Thu, 17 Oct 2019 15:04:49 +0000 (15:04 +0000)
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>
src/os/exec/exec_test.go

index c9322f6b0fde4c39ffa9f6a86de28037e6f58e09..41ffb60e6e2ba0bfc7600e63aecc8218a93581b5 100644 (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)