mirror of
https://github.com/golang/go
synced 2024-11-20 04:04:41 -07:00
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 <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
2de67e9974
commit
6a90b1d621
@ -84,7 +84,6 @@ func TestMain(m *testing.M) {
|
|||||||
// Don't let these environment variables confuse the test.
|
// Don't let these environment variables confuse the test.
|
||||||
os.Unsetenv("GOBIN")
|
os.Unsetenv("GOBIN")
|
||||||
os.Unsetenv("GOPATH")
|
os.Unsetenv("GOPATH")
|
||||||
os.Unsetenv("GOROOT")
|
|
||||||
|
|
||||||
r := m.Run()
|
r := m.Run()
|
||||||
|
|
||||||
|
@ -98,6 +98,16 @@ func TestGdbPython(t *testing.T) {
|
|||||||
|
|
||||||
firstLine := bytes.SplitN(got, []byte("\n"), 2)[0]
|
firstLine := bytes.SplitN(got, []byte("\n"), 2)[0]
|
||||||
if string(firstLine) != "Loading Go Runtime support." {
|
if string(firstLine) != "Loading Go Runtime support." {
|
||||||
|
// This can happen when using all.bash with
|
||||||
|
// GOROOT_FINAL set, because the tests are run before
|
||||||
|
// the final installation of the files.
|
||||||
|
cmd := exec.Command("go", "env", "GOROOT")
|
||||||
|
cmd.Env = []string{}
|
||||||
|
out, err := cmd.CombinedOutput()
|
||||||
|
if err != nil && bytes.Contains(out, []byte("cannot find GOROOT")) {
|
||||||
|
t.Skipf("skipping because GOROOT=%s does not exist", runtime.GOROOT())
|
||||||
|
}
|
||||||
|
|
||||||
t.Fatalf("failed to load Go runtime support: %s", firstLine)
|
t.Fatalf("failed to load Go runtime support: %s", firstLine)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user