]> Cypherpunks repositories - gostls13.git/commit
cmd/go: disable tests when GOOS/GOARCH != GOHOSTARCH/GOHOSTARCH
authorRuss Cox <rsc@golang.org>
Fri, 1 Dec 2017 20:53:06 +0000 (15:53 -0500)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 4 Dec 2017 05:15:50 +0000 (05:15 +0000)
commit1b9f66330b123b042e738eff5e47e869dd301a98
tree6ad437258d8eed8b5f634689bd7b21b3e6717bbc
parentf047422a181d245c25127eb8e6d44502df36d376
cmd/go: disable tests when GOOS/GOARCH != GOHOSTARCH/GOHOSTARCH

The whole GOROOT/pkg tree is installed using the GOHOSTOS/GOHOSTARCH
toolchain (installed in GOROOT/pkg/tool/GOHOSTOS_GOHOSTARCH).
The testgo.exe we run during the cmd/go test will be built
for GOOS/GOARCH, which means it will use the GOOS/GOARCH toolchain
(installed in GOROOT/pkg/tool/GOOS_GOARCH).

If these are not the same toolchain, then the entire standard library
will look out of date to testgo.exe (the compilers in those two different
tool directories are built for different architectures and have different
buid IDs), which will cause many tests to do unnecessary rebuilds
and some tests to attempt to overwrite the installed standard library,
which will in turn make it look out of date to whatever runs after the
cmd/go test exits.

Bail out entirely in this case instead of destroying the world.

The changes outside TestMain are checks that might have caught
this a bit earlier and made it much less confusing to debug.

Fixes #22709.
Fixes #22965.

Change-Id: Ibf28fa19e29a1f1b8f17875f446d3474dd04a924
Reviewed-on: https://go-review.googlesource.com/81516
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/cmd/go/go_test.go