aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Matloob <matloob@golang.org>2023-04-17 16:42:18 -0400
committerMichael Matloob <matloob@golang.org>2023-04-18 19:49:40 +0000
commitfd786a550a0ca004725cba2f49fd8ee86ef22b10 (patch)
treea0a4b4355401fee1f32b86d2b932f6b2a4e098b0 /src
parent903a25ae118b5f9bb0aacf7969dd637480185bd6 (diff)
downloadgo-fd786a550a0ca004725cba2f49fd8ee86ef22b10.tar.xz
cmd/go: skip over all workspace modules in go mod verify
This was a remaining place where we made the assumption that there is only one workspace module. So we'd only skip the first workspace module when running go mod verify. Instead skip over the first MainModules.Len() modules of the buildlist, which are all the main modules. Fixes #54372 Change-Id: Ife687c907ae4326759c43cc35f78d429d5113b19 Reviewed-on: https://go-review.googlesource.com/c/go/+/485475 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Michael Matloob <matloob@golang.org> Run-TryBot: Michael Matloob <matloob@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/go/internal/modcmd/verify.go2
-rw-r--r--src/cmd/go/internal/modload/buildlist.go2
-rw-r--r--src/cmd/go/testdata/script/work_issue54372.txt37
3 files changed, 39 insertions, 2 deletions
diff --git a/src/cmd/go/internal/modcmd/verify.go b/src/cmd/go/internal/modcmd/verify.go
index a5f7f24563..20fa966792 100644
--- a/src/cmd/go/internal/modcmd/verify.go
+++ b/src/cmd/go/internal/modcmd/verify.go
@@ -58,7 +58,7 @@ func runVerify(ctx context.Context, cmd *base.Command, args []string) {
// Use a slice of result channels, so that the output is deterministic.
const defaultGoVersion = ""
- mods := modload.LoadModGraph(ctx, defaultGoVersion).BuildList()[1:]
+ mods := modload.LoadModGraph(ctx, defaultGoVersion).BuildList()[modload.MainModules.Len():]
errsChans := make([]<-chan []error, len(mods))
for i, mod := range mods {
diff --git a/src/cmd/go/internal/modload/buildlist.go b/src/cmd/go/internal/modload/buildlist.go
index 005f306ff4..046743b59e 100644
--- a/src/cmd/go/internal/modload/buildlist.go
+++ b/src/cmd/go/internal/modload/buildlist.go
@@ -448,7 +448,7 @@ func (mg *ModuleGraph) WalkBreadthFirst(f func(m module.Version)) {
}
// BuildList returns the selected versions of all modules present in the graph,
-// beginning with Target.
+// beginning with the main modules.
//
// The order of the remaining elements in the list is deterministic
// but arbitrary.
diff --git a/src/cmd/go/testdata/script/work_issue54372.txt b/src/cmd/go/testdata/script/work_issue54372.txt
new file mode 100644
index 0000000000..bd3108abab
--- /dev/null
+++ b/src/cmd/go/testdata/script/work_issue54372.txt
@@ -0,0 +1,37 @@
+# go mod verify should not try to verify the workspace modules.
+# This is a test for #54372.
+
+go mod verify
+stdout 'all modules verified'
+! stderr .
+
+-- go.work --
+go 1.21
+
+use (
+ ./a
+ ./b
+ ./c
+ ./d
+)
+-- a/go.mod --
+module example.com/a
+
+go 1.21
+
+require rsc.io/quote v1.1.0
+-- a/a.go --
+package a
+import _ "rsc.io/quote"
+-- b/go.mod --
+module example.com/b
+
+go 1.21
+-- c/go.mod --
+module example.com/c
+
+go 1.21
+-- d/go.mod --
+module example.com/d
+
+go 1.21 \ No newline at end of file