# Test GOMODCACHE
env GO111MODULE=on

# Explicitly set GOMODCACHE
env GOMODCACHE=$WORK/modcache
go env GOMODCACHE
stdout $WORK[/\\]modcache
go get -d rsc.io/quote@v1.0.0
exists $WORK/modcache/cache/download/rsc.io/quote/@v/v1.0.0.info
grep '{"Version":"v1.0.0","Time":"2018-02-14T00:45:20Z"}' $WORK/modcache/cache/download/rsc.io/quote/@v/v1.0.0.info

# Ensure GOMODCACHE doesn't affect location of sumdb, but $GOMODCACHE/cache/download/sumdb is still written
exists $GOPATH/pkg/sumdb
! exists $WORK/modcache/sumdb
exists $WORK/modcache/cache/download/sumdb

# Test that the default GOMODCACHE is $GOPATH[0]/pkg/mod
env GOMODCACHE=
go env GOMODCACHE
stdout $GOPATH[/\\]pkg[/\\]mod
go get -d rsc.io/quote@v1.0.0
exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.0.0.info
grep '{"Version":"v1.0.0","Time":"2018-02-14T00:45:20Z"}' $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.0.0.info

# If neither GOMODCACHE or GOPATH are set, GOPATH defaults to the user's $HOME/go, so GOMODCACHE becomes $HOME/go/pkg/mod
[windows] env USERPROFILE=$WORK/home # Ensure USERPROFILE is a valid path (rather than /no-home/ so we don't run into the logic that "uninfers" GOPATH in cmd/go/main.go
[plan9] env home=$WORK/home
[!windows] [!plan9] env HOME=$WORK/home
env GOMODCACHE=
env GOPATH=
go env GOMODCACHE
stdout $HOME[/\\]go[/\\]pkg[/\\]mod

# If GOMODCACHE isn't set and GOPATH starts with the path list separator, it's an error.
env GOMODCACHE=
env GOPATH=${:}$WORK/this/is/ignored
! go env GOMODCACHE
stderr 'missing \$GOPATH'

# If GOMODCACHE isn't set and GOPATH has multiple elements only the first is used.
env GOMODCACHE=
env GOPATH=$WORK/first/path${:}$WORK/this/is/ignored
go env GOMODCACHE
stdout $WORK[/\\]first[/\\]path[/\\]pkg[/\\]mod

env GOMODCACHE=$WORK/modcache
go mod download rsc.io/quote@v1.0.0
exists $WORK/modcache/cache/download/rsc.io/quote/@v/v1.0.0.info

# Test error when cannot create GOMODCACHE directory
env GOMODCACHE=$WORK/modcachefile
! go install example.com/cmd/a@v1.0.0
stderr 'go: could not create module cache'

# Test that the following work even with GO111MODULE=off
env GO111MODULE=off

# Cleaning modcache
exists $WORK/modcache
env GOMODCACHE=$WORK/modcache
go clean -modcache
! exists $WORK/modcache

-- go.mod --
module m

-- $WORK/modcachefile --
