| env TESTGO_VERSION=go1.14 |
| |
| # Clear the path so this test doesn't fail if the system running it\ |
| # has a binary named go1.21 or go1.22 on its path. |
| [GOOS:plan9] env path= |
| [!GOOS:plan9] env PATH= |
| |
| # check for invalid toolchain in go.mod |
| go mod init m |
| go mod edit -go=1.14 -toolchain=go1.22 |
| ! go version |
| stderr 'go: invalid toolchain: go1.22 is a language version but not a toolchain version \(go1.22.x\)' |
| |
| rm go.mod |
| go mod init m |
| go mod edit -go=1.14 -toolchain=go1.21 |
| ! go version |
| stderr 'go: invalid toolchain: go1.21 is a language version but not a toolchain version \(go1.21.x\)' |
| |
| rm go.mod |
| go mod init m |
| go mod edit -go=1.14 -toolchain=go1.20 |
| ! go version |
| stderr 'go: downloading go1.20 ' |
| |
| |
| # check for invalid GOTOOLCHAIN |
| env GOTOOLCHAIN=go1.14 |
| go version |
| stdout 'go1.14' |
| |
| env GOTOOLCHAIN=go1.20 |
| ! go version |
| stderr 'go: downloading go1.20 ' |
| |
| env GOTOOLCHAIN=go1.21 |
| ! go version |
| stderr 'go: invalid toolchain: go1.21 is a language version but not a toolchain version \(go1.21.x\)' |
| |
| env GOTOOLCHAIN=go1.22 |
| ! go version |
| stderr 'go: invalid toolchain: go1.22 is a language version but not a toolchain version \(go1.22.x\)' |
| |
| env GOTOOLCHAIN=go1.20+auto |
| ! go version |
| stderr 'go: downloading go1.20 ' |
| |
| env GOTOOLCHAIN=go1.21+auto |
| ! go version |
| stderr 'go: invalid toolchain: go1.21 is a language version but not a toolchain version \(go1.21.x\)' |
| |
| env GOTOOLCHAIN=go1.22+auto |
| ! go version |
| stderr 'go: invalid toolchain: go1.22 is a language version but not a toolchain version \(go1.22.x\)' |
| |
| env GOTOOLCHAIN=go1.21rc3 |
| ! go version |
| stderr 'go: downloading go1.21rc3 ' |
| |
| env GOTOOLCHAIN=go1.22rc2 |
| ! go version |
| stderr 'go: downloading go1.22rc2 ' |
| |
| env GOTOOLCHAIN=go1.66 |
| ! go version |
| stderr 'go: invalid toolchain: go1.66 is a language version but not a toolchain version \(go1.66.x\)' |
| |
| env GOTOOLCHAIN=go1.18beta2 |
| ! go version |
| stderr 'go: downloading go1.18beta2 ' |
| |
| # go1.X is okay for path lookups |
| env GOTOOLCHAIN=go1.20+path |
| ! go version |
| stderr 'go: cannot find "go1.20" in PATH' |
| |
| env GOTOOLCHAIN=go1.21+path |
| ! go version |
| stderr 'go: cannot find "go1.21" in PATH' |
| |
| env GOTOOLCHAIN=go1.22+path |
| ! go version |
| stderr 'go: cannot find "go1.22" in PATH' |
| |
| # When a toolchain download takes place, download 1.X.0 |
| env GOTOOLCHAIN=auto |
| rm go.mod |
| go mod init m |
| go mod edit -go=1.300 -toolchain=none |
| ! go version |
| stderr 'go: downloading go1.300.0 ' |
| |
| rm go.mod |
| go mod init m |
| go mod edit -go=1.21 -toolchain=none |
| ! go version |
| stderr 'go: downloading go1.21.0 ' |
| |
| rm go.mod |
| go mod init m |
| go mod edit -go=1.22 -toolchain=none |
| ! go version |
| stderr 'go: downloading go1.22.0 ' |
| |
| rm go.mod |
| go mod init m |
| go mod edit -go=1.15 -toolchain=none |
| ! go version |
| stderr 'go: downloading go1.15 ' |