Skip to content

Commit

Permalink
path/filepath: fix race with other tests
Browse files Browse the repository at this point in the history
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
  • Loading branch information
rsc committed Sep 9, 2013
1 parent 10c36fb commit 5dc8c4d
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions src/pkg/path/filepath/path_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}

0 comments on commit 5dc8c4d

Please sign in to comment.