]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/moddeps: don't skip directories if there are unusual files
authorDmitri Shuralyov <dmitshur@golang.org>
Thu, 4 Jun 2020 23:20:01 +0000 (19:20 -0400)
committerDmitri Shuralyov <dmitshur@golang.org>
Mon, 8 Jun 2020 15:44:05 +0000 (15:44 +0000)
Previously, if there was a non-directory file with the name vendor or
testdata in the Go source tree, it was possible for some directories
to be skipped by filepath.Walk performed in findGorootModules.

As unusual and unlikely as such non-directory files are, it's better
to ensure all directories are visited, and all modules in the GOROOT
source tree are found.

This increases confidence that tests relying on findGorootModule
will not have unexpected false negatives.

For #36851.
For #36907.

Change-Id: I468e80d8f57119e2c72d546b3fd1e23c31fd6e6c
Reviewed-on: https://go-review.googlesource.com/c/go/+/236600
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/cmd/internal/moddeps/moddeps_test.go

index 5d73edd318f7c59203e892261607ccaf3052a4c9..2e6167322e783af9cdfc47d536b3a1293a244b6a 100644 (file)
@@ -36,7 +36,7 @@ func findGorootModules(t *testing.T) []gorootModule {
                        if err != nil {
                                return err
                        }
-                       if info.Name() == "vendor" || info.Name() == "testdata" {
+                       if info.IsDir() && (info.Name() == "vendor" || info.Name() == "testdata") {
                                return filepath.SkipDir
                        }
                        if path == filepath.Join(runtime.GOROOT(), "pkg") {