| # This test only checks that basic network lookups work. |
| # The full test of toolchain version selection is in gotoolchain.txt. |
| |
| # This test is sensitive to "new" Go experiments, so |
| # update the environment to remove any existing GOEXPERIMENT |
| # setting, see #62016 for more on this. |
| env GOEXPERIMENT='' |
| |
| env TESTGO_VERSION=go1.21actual |
| |
| # GOTOOLCHAIN from network, does not exist |
| env GOTOOLCHAIN=go1.9999x |
| ! go version |
| stderr 'go: download go1.9999x for .*: toolchain not available' |
| |
| # GOTOOLCHAIN from network |
| [!exec:/bin/sh] stop 'the fake proxy serves shell scripts instead of binaries' |
| env GOTOOLCHAIN=go1.999testmod |
| go version |
| stderr 'go: downloading go1.999testmod \(.*/.*\)' |
| |
| # GOTOOLCHAIN cached from network |
| go version |
| ! stderr downloading |
| stdout go1.999testmod |
| |
| # GOTOOLCHAIN with GOSUMDB enabled but at a bad URL should operate in cache and not try badurl |
| env oldsumdb=$GOSUMDB |
| env GOSUMDB=$oldsumdb' http://badurl' |
| go version |
| ! stderr downloading |
| stdout go1.999testmod |
| |
| # GOTOOLCHAIN with GOSUMB=off should fail, because it cannot access even the cached sumdb info |
| # without the sumdb name. |
| env GOSUMDB=off |
| ! go version |
| stderr '^go: golang.org/toolchain@v0.0.1-go1.999testmod.[a-z0-9\-]*: verifying module: checksum database disabled by GOSUMDB=off$' |
| |
| # GOTOOLCHAIN with GOSUMDB enabled but at a bad URL should fail if cache is incomplete |
| env GOSUMDB=$oldsumdb' http://badurl' |
| rm $GOPATH/pkg/mod/cache/download/sumdb |
| ! go version |
| ! stderr downloading |
| stderr 'panic: use of network' # test catches network access |
| env GOSUMDB=$oldsumdb |
| |
| # Test a real GOTOOLCHAIN |
| [short] skip |
| [!net:golang.org] skip |
| [!net:sum.golang.org] skip |
| [!GOOS:darwin] [!GOOS:windows] [!GOOS:linux] skip |
| [!GOARCH:amd64] [!GOARCH:arm64] skip |
| |
| env GOPROXY= |
| [go-builder] env GOSUMDB= |
| [!go-builder] env GOSUMDB=sum.golang.org # Set explicitly in case GOROOT/go.env is modified. |
| env GOTOOLCHAIN=go1.20.1 |
| |
| # Avoid resolving a "go1.20.1" from the user's real $PATH. |
| # That would not only cause the "downloading go1.20.1" message |
| # to be suppressed, but may spuriously fail: |
| # golang.org/dl/go1.20.1 expects to find its GOROOT in $HOME/sdk, |
| # but the script environment sets HOME=/no-home. |
| env PATH= |
| env path= |
| |
| go version |
| stderr '^go: downloading go1.20.1 ' |
| stdout go1.20.1 |