cmd/internal/testdir: skip Test if GOROOT/test does not exist

cmd/distpack removes GOROOT/test from its distribution.

For #24904.

Change-Id: I6d1a8c608a1a1fe3fddfe0cd5279202ea9c2b3ce
Reviewed-on: https://go-review.googlesource.com/c/go/+/504058
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
Bryan C. Mills 2023-06-16 15:45:13 -04:00 committed by Gopher Robot
parent a48f9c26d5
commit 199fbd4b59

View file

@ -117,6 +117,15 @@ func Test(t *testing.T) {
runoutputGate: make(chan bool, *runoutputLimit),
}
// cmd/distpack deletes GOROOT/test, so skip the test if it isn't present.
// cmd/distpack also requires GOROOT/VERSION to exist, so use that to
// suppress false-positive skips.
if _, err := os.Stat(common.gorootTestDir); os.IsNotExist(err) {
if _, err := os.Stat(filepath.Join(testenv.GOROOT(t), "VERSION")); err == nil {
t.Skipf("skipping: GOROOT/test not present")
}
}
for _, dir := range dirs {
for _, goFile := range goFiles(t, dir) {
test := test{testCommon: common, dir: dir, goFile: goFile}