imports: respect ignoredDirs for symlinks

Fixes golang/go#17916

Added tests.

Change-Id: Ie44e4bcbec267b6c16249336c5d48bae86acc2b5
Reviewed-on: https://go-review.googlesource.com/33246
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Chris Stockton 2016-11-15 09:48:37 -07:00 коммит произвёл Brad Fitzpatrick
Родитель 8b84dae173
Коммит 4c6345e8dc
2 изменённых файлов: 37 добавлений и 0 удалений

Просмотреть файл

@ -462,6 +462,9 @@ func shouldTraverse(dir string, fi os.FileInfo) bool {
if !ts.IsDir() { if !ts.IsDir() {
return false return false
} }
if skipDir(ts) {
return false
}
realParent, err := filepath.EvalSymlinks(dir) realParent, err := filepath.EvalSymlinks(dir)
if err != nil { if err != nil {

Просмотреть файл

@ -889,6 +889,40 @@ var (
t.Fatalf("results differ\nGOT:\n%s\nWANT:\n%s\n", got, output) t.Fatalf("results differ\nGOT:\n%s\nWANT:\n%s\n", got, output)
} }
}) })
// Add a .goimportsignore and ensure it is respected.
if err := ioutil.WriteFile(newGoPath+"/src/.goimportsignore", []byte("x/mypkg\n"), 0666); err != nil {
t.Fatal(err)
}
withEmptyGoPath(func() {
build.Default.GOPATH = newGoPath
input := `package p
var (
_ = fmt.Print
_ = mypkg.Foo
)
`
output := `package p
import "fmt"
var (
_ = fmt.Print
_ = mypkg.Foo
)
`
buf, err := Process(newGoPath+"/src/myotherpkg/toformat.go", []byte(input), &Options{})
if err != nil {
t.Fatal(err)
}
if got := string(buf); got != output {
t.Fatalf("ignored results differ\nGOT:\n%s\nWANT:\n%s\n", got, output)
}
})
} }
// Test for correctly identifying the name of a vendored package when it // Test for correctly identifying the name of a vendored package when it