cmd/go/internal/vgo: skip not-yet-downloaded module in verify
Verify is meant to check what's on the local system.
If we haven't downloaded a module yet, don't download it just to check it.
If we do need to download it later, it will be checked then.
Fixes golang/go#24067.
Change-Id: Ic8dd83fac758404ff6d914447e077b2c54284136
Reviewed-on: https://go-review.googlesource.com/117935
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
diff --git a/vendor/cmd/go/internal/vgo/verify.go b/vendor/cmd/go/internal/vgo/verify.go
index 91c41b8..d21c9d7 100644
--- a/vendor/cmd/go/internal/vgo/verify.go
+++ b/vendor/cmd/go/internal/vgo/verify.go
@@ -42,8 +42,11 @@
// TODO: take arguments
base.Fatalf("vgo verify: verify takes no arguments")
}
+
+ // Make go.mod consistent but don't load any packages.
InitMod()
- ImportPaths([]string{"all"})
+ iterate(func(*loader) {})
+ writeGoMod()
ok := true
for _, mod := range buildList[1:] {
diff --git a/vendor/cmd/go/vgo_test.go b/vendor/cmd/go/vgo_test.go
index f559970..694c150 100644
--- a/vendor/cmd/go/vgo_test.go
+++ b/vendor/cmd/go/vgo_test.go
@@ -337,3 +337,23 @@
// make sure Gopkg.lock was properly used.
tg.grepStderr("v0.6.0", "expected github.com/pkg/errors at v0.6.0")
}
+
+func TestVerifyNotDownloaded(t *testing.T) {
+ testenv.MustHaveExternalNetwork(t)
+ tg := testgo(t)
+ defer tg.cleanup()
+ tg.makeTempdir()
+ tg.setenv("GOPATH", tg.path("gp"))
+ tg.must(os.MkdirAll(tg.path("x"), 0777))
+ tg.must(ioutil.WriteFile(tg.path("x/go.mod"), []byte(`
+ module x
+ require github.com/pkg/errors v0.8.0
+ `), 0666))
+ tg.must(ioutil.WriteFile(tg.path("x/go.modverify"), []byte(`github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
+`), 0666))
+ tg.must(ioutil.WriteFile(tg.path("x/x.go"), []byte(`package x`), 0666))
+ tg.cd(tg.path("x"))
+ tg.run("-vgo", "verify")
+ tg.mustNotExist(filepath.Join(tg.path("gp"), "/src/v/cache/github.com/pkg/errors/@v/v0.8.0.zip"))
+ tg.mustNotExist(filepath.Join(tg.path("gp"), "/src/v/github.com/pkg"))
+}