From: qmuntal Date: Fri, 23 Feb 2024 12:38:27 +0000 (+0100) Subject: path/filepath: support multiple TestAbs runs on Windows X-Git-Tag: go1.23rc1~1137 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7db8b9e518311c1ee707a3f2fe6343e7c595c936;p=gostls13.git path/filepath: support multiple TestAbs runs on Windows TestAbs modifies the absTests global variable on Windows, which makes the test to fail if it is run more than once, i.e. executing "go test -run ^TestAbs$ -count 2 path/filepath". This CL fixes the issue by clipping the absTests slices before appending more elements to it. Change-Id: I8f1144b2f10b8fa1b847e6639c0bda7baafc2dac Reviewed-on: https://go-review.googlesource.com/c/go/+/566396 Reviewed-by: Bryan Mills LUCI-TryBot-Result: Go LUCI Reviewed-by: Damien Neil --- diff --git a/src/path/filepath/path_test.go b/src/path/filepath/path_test.go index ed3990859b..c96a758c69 100644 --- a/src/path/filepath/path_test.go +++ b/src/path/filepath/path_test.go @@ -1403,6 +1403,9 @@ func TestAbs(t *testing.T) { } } + // Make sure the global absTests slice is not + // modified by multiple invocations of TestAbs. + tests := absTests if runtime.GOOS == "windows" { vol := filepath.VolumeName(root) var extra []string @@ -1413,7 +1416,7 @@ func TestAbs(t *testing.T) { path = vol + path extra = append(extra, path) } - absTests = append(absTests, extra...) + tests = append(slices.Clip(tests), extra...) } err = os.Chdir(absTestDirs[0]) @@ -1421,7 +1424,7 @@ func TestAbs(t *testing.T) { t.Fatal("chdir failed: ", err) } - for _, path := range absTests { + for _, path := range tests { path = strings.ReplaceAll(path, "$", root) info, err := os.Stat(path) if err != nil {