]> Cypherpunks repositories - gostls13.git/commitdiff
path/filepath: fix race with other tests
authorRuss Cox <rsc@golang.org>
Mon, 9 Sep 2013 20:42:18 +0000 (16:42 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 9 Sep 2013 20:42:18 +0000 (16:42 -0400)
Bug3486 tried to walk the entire file tree, but other tests might
be creating and removing files in that tree. In particular, package os
creates and removes files in the os directory, and issue 5863
reports failures due to seeing those files appear and then disappear.

Change the test to walk just the test tree, which should not be
changing.

Fixes #5863.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/13467045

src/pkg/path/filepath/path_test.go

index bbb4e16f2a7901613682a661663d0aba70dd419a..d32b70d6e2d9632774f2ab1b4c4a00b2c40f06c2 100644 (file)
@@ -927,27 +927,32 @@ func TestDriveLetterInEvalSymlinks(t *testing.T) {
 }
 
 func TestBug3486(t *testing.T) { // http://code.google.com/p/go/issues/detail?id=3486
-       root, err := filepath.EvalSymlinks(runtime.GOROOT())
+       root, err := filepath.EvalSymlinks(runtime.GOROOT() + "/test")
        if err != nil {
                t.Fatal(err)
        }
-       lib := filepath.Join(root, "lib")
-       src := filepath.Join(root, "src")
-       seenSrc := false
+       bugs := filepath.Join(root, "bugs")
+       ken := filepath.Join(root, "ken")
+       seenBugs := false
+       seenKen := false
        filepath.Walk(root, func(pth string, info os.FileInfo, err error) error {
                if err != nil {
                        t.Fatal(err)
                }
 
                switch pth {
-               case lib:
+               case bugs:
+                       seenBugs = true
                        return filepath.SkipDir
-               case src:
-                       seenSrc = true
+               case ken:
+                       if !seenBugs {
+                               t.Fatal("filepath.Walk out of order - ken before bugs")
+                       }
+                       seenKen = true
                }
                return nil
        })
-       if !seenSrc {
-               t.Fatalf("%q not seen", src)
+       if !seenKen {
+               t.Fatalf("%q not seen", ken)
        }
 }