From: Russ Cox Date: Fri, 13 Nov 2009 19:34:33 +0000 (-0800) Subject: path.TestWalk: disable error case if root X-Git-Tag: weekly.2009-11-17~81 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e7b8f5faca9d515491893f614cb72728d5d6103f;p=gostls13.git path.TestWalk: disable error case if root (chmod 0 doesn't cause errors for root) Fixes #22. R=gri https://golang.org/cl/152120 --- 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--; - - // 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 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; + } } + 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);