diff --git a/src/os/removeall_test.go b/src/os/removeall_test.go index 6aca98021fb393e64760f16329fd77590b1ea5b5..454a6b5d0a3269b85e37afbf5babefdac347aa54 100644 --- a/src/os/removeall_test.go +++ b/src/os/removeall_test.go @@ -159,40 +159,25 @@ func TestRemoveAllLongPath(t *testing.T) { t.Skip("skipping for not implemented platforms") } - prevDir, err := Getwd() - if err != nil { - t.Fatalf("Could not get wd: %s", err) - } + startPath := t.TempDir() + t.Chdir(startPath) - startPath, err := MkdirTemp("", "TestRemoveAllLongPath-") - if err != nil { - t.Fatalf("Could not create TempDir: %s", err) - } - defer RemoveAll(startPath) - - err = Chdir(startPath) - if err != nil { - t.Fatalf("Could not chdir %s: %s", startPath, err) - } - - // Removing paths with over 4096 chars commonly fails + // Removing paths with over 4096 chars commonly fails. + name := strings.Repeat("a", 100) for i := 0; i < 41; i++ { - name := strings.Repeat("a", 100) - - err = Mkdir(name, 0755) - if err != nil { + if err := Mkdir(name, 0755); err != nil { t.Fatalf("Could not mkdir %s: %s", name, err) } - - err = Chdir(name) - if err != nil { + if err := Chdir(name); err != nil { t.Fatalf("Could not chdir %s: %s", name, err) } } - err = Chdir(prevDir) + // Chdir out of startPath before attempting to remove it, + // otherwise RemoveAll fails on aix, illumos and solaris. + err := Chdir(filepath.Join(startPath, "..")) if err != nil { - t.Fatalf("Could not chdir %s: %s", prevDir, err) + t.Fatalf("Could not chdir: %s", err) } err = RemoveAll(startPath)