Skip to content

Commit 6a90b1d

Browse files
runtime, cmd/go: fix tests to work when GOROOT_FINAL is set
When GOROOT_FINAL is set when running all.bash, the tests are run before the files are copied to GOROOT_FINAL. The tests are run with GOROOT set, so most work fine. This fixes two cases that do not. In cmd/go/go_test.go we were explicitly removing GOROOT from the environment, causing tests that did not themselves explicitly set GOROOT to fail. There was no need to explicitly remove GOROOT, so don't do it. If people choose to run "go test cmd/go" with a bad GOROOT, that is their own lookout. In the runtime GDB test, the linker has told gdb to find the support script in GOROOT_FINAL, which will fail. Check for that case, and skip the test when we see it. Fixes #11652. Change-Id: I4d3a32311e3973c30fd8a79551aaeab6789d0451 Reviewed-on: https://go-review.googlesource.com/12021 Run-TryBot: Ian Lance Taylor <[email protected]> TryBot-Result: Gobot Gobot <[email protected]> Reviewed-by: Brad Fitzpatrick <[email protected]>
1 parent 2de67e9 commit 6a90b1d

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/cmd/go/go_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ func TestMain(m *testing.M) {
8484
// Don't let these environment variables confuse the test.
8585
os.Unsetenv("GOBIN")
8686
os.Unsetenv("GOPATH")
87-
os.Unsetenv("GOROOT")
8887

8988
r := m.Run()
9089

src/runtime/runtime-gdb_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,16 @@ func TestGdbPython(t *testing.T) {
9898

9999
firstLine := bytes.SplitN(got, []byte("\n"), 2)[0]
100100
if string(firstLine) != "Loading Go Runtime support." {
101+
// This can happen when using all.bash with
102+
// GOROOT_FINAL set, because the tests are run before
103+
// the final installation of the files.
104+
cmd := exec.Command("go", "env", "GOROOT")
105+
cmd.Env = []string{}
106+
out, err := cmd.CombinedOutput()
107+
if err != nil && bytes.Contains(out, []byte("cannot find GOROOT")) {
108+
t.Skipf("skipping because GOROOT=%s does not exist", runtime.GOROOT())
109+
}
110+
101111
t.Fatalf("failed to load Go runtime support: %s", firstLine)
102112
}
103113

0 commit comments

Comments
 (0)