# Test default GOPROXY and GOSUMDB env GOPROXY= env GOSUMDB= go env GOPROXY stdout '^https://proxy.golang.org,direct$' go env GOSUMDB stdout '^sum.golang.org$' env GOPROXY=https://proxy.golang.org go env GOSUMDB stdout '^sum.golang.org$' # Download direct from github. [!net] skip [!exec:git] skip env GOSUMDB=sum.golang.org env GOPROXY=direct go get -d rsc.io/quote@v1.5.2 cp go.sum saved.sum # Download from proxy.golang.org with go.sum entry already. # Use 'go list' instead of 'go get' since the latter may download extra go.mod # files not listed in go.sum. go clean -modcache env GOSUMDB= env GOPROXY= go list -x -deps rsc.io/quote ! stderr github stderr proxy.golang.org/rsc.io/quote ! stderr sum.golang.org/tile ! stderr sum.golang.org/lookup/rsc.io/quote cmp go.sum saved.sum # Download again. # Should use the checksum database to validate new go.sum lines, # but not need to fetch any new data from the proxy. rm go.sum go list -mod=mod -x rsc.io/quote ! stderr github ! stderr proxy.golang.org/rsc.io/quote stderr sum.golang.org/tile stderr sum.golang.org/lookup/rsc.io/quote cmp go.sum saved.sum # test fallback to direct env TESTGOPROXY404=1 go clean -modcache rm go.sum go list -mod=mod -x rsc.io/quote stderr 'proxy.golang.org.*404 testing' stderr github.com/rsc cmp go.sum saved.sum -- go.mod -- module m