mirror of
https://github.com/golang/go.git
synced 2025-05-29 03:11:26 +00:00
path/filepath: fix race with other tests
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
This commit is contained in:
parent
10c36fbc9d
commit
5dc8c4dbfb
@ -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)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user