]> Cypherpunks repositories - gostls13.git/commitdiff
os: do not test error case of TestRemoveAll when root
authorRuss Cox <rsc@golang.org>
Wed, 11 Nov 2009 20:00:34 +0000 (12:00 -0800)
committerRuss Cox <rsc@golang.org>
Wed, 11 Nov 2009 20:00:34 +0000 (12:00 -0800)
Fixes #22.

R=r1, r
https://golang.org/cl/152073

src/pkg/os/path_test.go

index 0baa90132f46d4ec8803493402311cfc1a3eb28e..9b11ac1636a12147ce2a7b1cbe450013b90019f4 100644 (file)
@@ -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)
        }