From 3891ecbd3551bb9dad706175fc447dcc5c43eacf Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Fri, 16 Jun 2023 15:15:25 -0400 Subject: [PATCH] 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 Reviewed-by: Ian Lance Taylor Auto-Submit: Bryan Mills Run-TryBot: Bryan Mills --- src/go/internal/gcimporter/gcimporter_test.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/go/internal/gcimporter/gcimporter_test.go b/src/go/internal/gcimporter/gcimporter_test.go index 9ab29f3b1c..25ff402277 100644 --- a/src/go/internal/gcimporter/gcimporter_test.go +++ b/src/go/internal/gcimporter/gcimporter_test.go @@ -137,6 +137,16 @@ func TestImportTypeparamTests(t *testing.T) { 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) 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 // reason. - rootDir := filepath.Join(testenv.GOROOT(t), "test", "typeparam") + rootDir := filepath.Join(gorootTest, "typeparam") list, err := os.ReadDir(rootDir) if err != nil { t.Fatal(err) -- 2.50.0