]> Cypherpunks repositories - gostls13.git/commitdiff
cmd: ensure that GOPATH is always valid in subprocesses that execute 'go build'
authorBryan C. Mills <bcmills@google.com>
Tue, 12 Mar 2019 18:43:22 +0000 (14:43 -0400)
committerBryan C. Mills <bcmills@google.com>
Tue, 12 Mar 2019 18:58:04 +0000 (18:58 +0000)
GOPATH/pkg contains, among other things, the module cache (and associated lockfiles).

Fixes #30776

Change-Id: I305cb3c0daab8cedd2e6ad235d4733f66af18723
Reviewed-on: https://go-review.googlesource.com/c/go/+/167082
Reviewed-by: Jay Conrod <jayconrod@google.com>
src/cmd/cover/cover_test.go
src/cmd/internal/obj/x86/issue19518_test.go
src/cmd/internal/obj/x86/obj6_test.go
src/cmd/link/link_test.go

index f002442b638fb758edb5beaf23c37192a297ff02..cf8f3d2384d8603d24883dbf4ae8a900e1006332 100644 (file)
@@ -82,6 +82,7 @@ func TestMain(m *testing.M) {
                fmt.Fprintln(os.Stderr, err)
                os.Exit(1)
        }
+       os.Setenv("GOPATH", filepath.Join(dir, "_gopath"))
 
        testTempDir = dir
 
index 1b0fb4a8b17afa7e697e194f0b5111fd05baa405..174e2dd846f84b62d27a031feb383b4f6a933e62 100644 (file)
@@ -64,7 +64,8 @@ func objdumpOutput(t *testing.T) []byte {
                testenv.GoToolPath(t), "build", "-o",
                filepath.Join(tmpdir, "output"))
 
-       cmd.Env = append(os.Environ(), "GOARCH=amd64", "GOOS=linux")
+       cmd.Env = append(os.Environ(),
+               "GOARCH=amd64", "GOOS=linux", "GOPATH="+filepath.Join(tmpdir, "_gopath"))
        cmd.Dir = tmpdir
 
        out, err := cmd.CombinedOutput()
index c5399744f2d18761e4a03af33018d6b715051fca..f9dd584569d364941eede35f74c725a6db237ff5 100644 (file)
@@ -99,7 +99,8 @@ func asmOutput(t *testing.T, s string) []byte {
                testenv.GoToolPath(t), "tool", "asm", "-S", "-dynlink",
                "-o", filepath.Join(tmpdir, "output.6"), tmpfile.Name())
 
-       cmd.Env = append(os.Environ(), "GOARCH=amd64", "GOOS=linux")
+       cmd.Env = append(os.Environ(),
+               "GOARCH=amd64", "GOOS=linux", "GOPATH="+filepath.Join(tmpdir, "_gopath"))
        asmout, err := cmd.CombinedOutput()
        if err != nil {
                t.Fatalf("error %s output %s", err, asmout)
index 5200c3a6f084ca4f7a320eeb6ccb452db01de191..bcb3f2f58b809ee1484b9cba83e6fe72ca0262b6 100644 (file)
@@ -161,7 +161,8 @@ TEXT ·x(SB),0,$0
 `)
        cmd := exec.Command(testenv.GoToolPath(t), "build")
        cmd.Dir = tmpdir
-       cmd.Env = append(os.Environ(), []string{"GOARCH=amd64", "GOOS=linux"}...)
+       cmd.Env = append(os.Environ(),
+               "GOARCH=amd64", "GOOS=linux", "GOPATH="+filepath.Join(tmpdir, "_gopath"))
        out, err := cmd.CombinedOutput()
        if err == nil {
                t.Fatalf("expected build to fail, but it succeeded")