go/internal/gcimporter: skip TestImportTypeparamTests if GOROOT/test is missing

cmd/distpack removes GOROOT/test, so skip the test if it isn't there.

For #24904.

Change-Id: Iac381517d0540056b2ccea0dc1bd716113b18468
Reviewed-on: https://go-review.googlesource.com/c/go/+/504117
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
This commit is contained in:
Bryan C. Mills 2023-06-16 15:15:25 -04:00 committed by Gopher Robot
parent 60876717b4
commit 3891ecbd35
1 changed files with 11 additions and 1 deletions

View File

@ -137,6 +137,16 @@ func TestImportTypeparamTests(t *testing.T) {
t.Skipf("gc-built packages not available (compiler = %s)", runtime.Compiler) t.Skipf("gc-built packages not available (compiler = %s)", runtime.Compiler)
} }
// cmd/distpack removes the GOROOT/test directory, so skip if it isn't there.
// cmd/distpack also requires the presence of GOROOT/VERSION, so use that to
// avoid false-positive skips.
gorootTest := filepath.Join(testenv.GOROOT(t), "test")
if _, err := os.Stat(gorootTest); os.IsNotExist(err) {
if _, err := os.Stat(filepath.Join(testenv.GOROOT(t), "VERSION")); err == nil {
t.Skipf("skipping: GOROOT/test not present")
}
}
testenv.MustHaveGoBuild(t) testenv.MustHaveGoBuild(t)
tmpdir := mktmpdir(t) tmpdir := mktmpdir(t)
@ -144,7 +154,7 @@ func TestImportTypeparamTests(t *testing.T) {
// Check go files in test/typeparam, except those that fail for a known // Check go files in test/typeparam, except those that fail for a known
// reason. // reason.
rootDir := filepath.Join(testenv.GOROOT(t), "test", "typeparam") rootDir := filepath.Join(gorootTest, "typeparam")
list, err := os.ReadDir(rootDir) list, err := os.ReadDir(rootDir)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)