From 1971e1bd211d0922092e5b8ad8097bfa2290a333 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 11 Nov 2009 12:00:34 -0800 Subject: [PATCH] os: do not test error case of TestRemoveAll when root Fixes #22. R=r1, r https://golang.org/cl/152073 --- src/pkg/os/path_test.go | 53 ++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/pkg/os/path_test.go b/src/pkg/os/path_test.go index 0baa90132f..9b11ac1636 100644 --- a/src/pkg/os/path_test.go +++ b/src/pkg/os/path_test.go @@ -104,35 +104,38 @@ func TestRemoveAll(t *testing.T) { t.Fatalf("Lstat %q succeeded after RemoveAll (second)", path) } - // Make directory with file and subdirectory and trigger error. - if err = MkdirAll(dpath, 0777); err != nil { - t.Fatalf("MkdirAll %q: %s", dpath, err) - } + if Getuid() != 0 { // Test fails as root + // Make directory with file and subdirectory and trigger error. + if err = MkdirAll(dpath, 0777); err != nil { + t.Fatalf("MkdirAll %q: %s", dpath, err) + } - for _, s := range []string{fpath, dpath + "/file1", path + "/zzz"} { - fd, err = Open(s, O_WRONLY|O_CREAT, 0666); - if err != nil { - t.Fatalf("create %q: %s", s, err) + for _, s := range []string{fpath, dpath + "/file1", path + "/zzz"} { + fd, err = Open(s, O_WRONLY|O_CREAT, 0666); + if err != nil { + t.Fatalf("create %q: %s", s, err) + } + fd.Close(); } - fd.Close(); - } - if err = Chmod(dpath, 0); err != nil { - t.Fatalf("Chmod %q 0: %s", dpath, err) - } - if err = RemoveAll(path); err == nil { - _, err := Lstat(path); - if err == nil { - t.Errorf("Can lstat %q after supposed RemoveAll", path) + if err = Chmod(dpath, 0); err != nil { + t.Fatalf("Chmod %q 0: %s", dpath, err) + } + if err = RemoveAll(path); err == nil { + _, err := Lstat(path); + if err == nil { + t.Errorf("Can lstat %q after supposed RemoveAll", path) + } + t.Fatalf("RemoveAll %q succeeded with chmod 0 subdirectory", path, err); + } + perr, ok := err.(*PathError); + if !ok { + t.Fatalf("RemoveAll %q returned %T not *PathError", path, err) + } + if perr.Path != dpath { + t.Fatalf("RemoveAll %q failed at %q not %q", path, perr.Path, dpath) } - t.Fatalf("RemoveAll %q succeeded with chmod 0 subdirectory", path, err); - } - perr, ok := err.(*PathError); - if !ok { - t.Fatalf("RemoveAll %q returned %T not *PathError", path, err) - } - if perr.Path != dpath { - t.Fatalf("RemoveAll %q failed at %q not %q", path, perr.Path, dpath) } + if err = Chmod(dpath, 0777); err != nil { t.Fatalf("Chmod %q 0777: %s", dpath, err) } -- 2.48.1