aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thanawalla <samthanawalla@google.com>2024-04-23 17:52:55 +0000
committerSam Thanawalla <samthanawalla@google.com>2024-04-25 16:05:39 +0000
commit8c0da423f77fff5e206ad777cfc496e935cb3af6 (patch)
tree57b59802936dac4e974163d8949b75e3087b1894
parent8960925ad8dd1ef234731d94ebbea263e35a3e42 (diff)
downloadgo-8c0da423f77fff5e206ad777cfc496e935cb3af6.tar.gz
go-8c0da423f77fff5e206ad777cfc496e935cb3af6.zip
cmd/go: go env GOMOD should not download newer toolchain
It is not neccessary to download a newer toolchain to display the path to GOMOD or GOWORK. Fixes: #61455 Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest,gotip-windows-amd64-longtest Change-Id: I0b031651ad9bfeb5565361ecaff6908640ccf9c8 Reviewed-on: https://go-review.googlesource.com/c/go/+/581275 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Matloob <matloob@golang.org>
-rw-r--r--src/cmd/go/internal/toolchain/select.go8
-rw-r--r--src/cmd/go/testdata/script/env_gomod_issue61455.txt24
2 files changed, 32 insertions, 0 deletions
diff --git a/src/cmd/go/internal/toolchain/select.go b/src/cmd/go/internal/toolchain/select.go
index 6181f7c480..79f12f34bd 100644
--- a/src/cmd/go/internal/toolchain/select.go
+++ b/src/cmd/go/internal/toolchain/select.go
@@ -110,6 +110,14 @@ func Select() {
return
}
+ // As a special case, let "go env GOMOD" and "go env GOWORK" be handled by
+ // the local toolchain. Users expect to be able to look up GOMOD and GOWORK
+ // since the go.mod and go.work file need to be determined to determine
+ // the minimum toolchain. See issue #61455.
+ if len(os.Args) == 3 && os.Args[1] == "env" && (os.Args[2] == "GOMOD" || os.Args[2] == "GOWORK") {
+ return
+ }
+
// Interpret GOTOOLCHAIN to select the Go toolchain to run.
gotoolchain := cfg.Getenv("GOTOOLCHAIN")
gover.Startup.GOTOOLCHAIN = gotoolchain
diff --git a/src/cmd/go/testdata/script/env_gomod_issue61455.txt b/src/cmd/go/testdata/script/env_gomod_issue61455.txt
new file mode 100644
index 0000000000..8a94549a97
--- /dev/null
+++ b/src/cmd/go/testdata/script/env_gomod_issue61455.txt
@@ -0,0 +1,24 @@
+env TESTGO_VERSION=go1.500
+env TESTGO_VERSION_SWITCH=mismatch
+
+# go env GOMOD should not trigger a toolchain download
+cd $GOPATH/mod
+go env GOMOD
+stdout mod[/\\]go.mod
+! stderr 'go: toolchain go1.500 invoked to provide go1.700'
+
+# go env GOWORK should not trigger a toolchain download
+cd $GOPATH/work
+go env GOWORK
+stdout work[/\\]go.work
+! stderr 'go: toolchain go1.500 invoked to provide go1.700'
+
+-- $GOPATH/mod/go.mod --
+module example.com
+
+go 1.700
+
+-- $GOPATH/work/go.work --
+module example.com
+
+go 1.700 \ No newline at end of file