aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/path
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-11-13 11:34:33 -0800
committerRuss Cox <rsc@golang.org>2009-11-13 11:34:33 -0800
commite7b8f5faca9d515491893f614cb72728d5d6103f (patch)
tree6d4f597d88b2e907fce88935ad176e17b7c75ac2 /src/pkg/path
parent87bc9b53fd966659e8c3837a3a5839f924268487 (diff)
downloadgo-e7b8f5faca9d515491893f614cb72728d5d6103f.tar.xz
path.TestWalk: disable error case if root
(chmod 0 doesn't cause errors for root) Fixes #22. R=gri https://golang.org/cl/152120
Diffstat (limited to 'src/pkg/path')
-rw-r--r--src/pkg/path/path_test.go46
1 files changed, 24 insertions, 22 deletions
diff --git a/src/pkg/path/path_test.go b/src/pkg/path/path_test.go
index b5cc33f182..74520fa315 100644
--- a/src/pkg/path/path_test.go
+++ b/src/pkg/path/path_test.go
@@ -233,31 +233,33 @@ func TestWalk(t *testing.T) {
}
checkMarks(t);
- // introduce 2 errors: chmod top-level directories to 0
- os.Chmod(Join(tree.name, tree.entries[1].name), 0);
- os.Chmod(Join(tree.name, tree.entries[3].name), 0);
- // mark respective subtrees manually
- markTree(tree.entries[1]);
- markTree(tree.entries[3]);
- // correct double-marking of directory itself
- tree.entries[1].mark--;
- tree.entries[3].mark--;
+ if os.Getuid() != 0 {
+ // introduce 2 errors: chmod top-level directories to 0
+ os.Chmod(Join(tree.name, tree.entries[1].name), 0);
+ os.Chmod(Join(tree.name, tree.entries[3].name), 0);
+ // mark respective subtrees manually
+ markTree(tree.entries[1]);
+ markTree(tree.entries[3]);
+ // correct double-marking of directory itself
+ tree.entries[1].mark--;
+ tree.entries[3].mark--;
- // 3) handle errors, expect two
- errors = make(chan os.Error, 64);
- os.Chmod(Join(tree.name, tree.entries[1].name), 0);
- Walk(tree.name, v, errors);
- for i := 1; i <= 2; i++ {
- if _, ok := <-errors; !ok {
- t.Errorf("%d. error expected, none found", i);
- break;
+ // 3) handle errors, expect two
+ errors = make(chan os.Error, 64);
+ os.Chmod(Join(tree.name, tree.entries[1].name), 0);
+ Walk(tree.name, v, errors);
+ for i := 1; i <= 2; i++ {
+ if _, ok := <-errors; !ok {
+ t.Errorf("%d. error expected, none found", i);
+ break;
+ }
}
+ if err, ok := <-errors; ok {
+ t.Errorf("only two errors expected, found 3rd: %v", err)
+ }
+ // the inaccessible subtrees were marked manually
+ checkMarks(t);
}
- if err, ok := <-errors; ok {
- t.Errorf("only two errors expected, found 3rd: %v", err)
- }
- // the inaccessible subtrees were marked manually
- checkMarks(t);
// cleanup
os.Chmod(Join(tree.name, tree.entries[1].name), 0770);