# Test GOMODCACHE
env GO111MODULE=on

# Explicitly set GOMODCACHE
env GOMODCACHE=$WORK/modcache
go env GOMODCACHE
stdout $WORK[/\\]modcache
go get 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 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
[GOOS: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
[GOOS:plan9] env home=$WORK/home
[!GOOS:windows] [!GOOS: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,
# GOMODCACHE is empty and any command that needs it errors out.
env GOMODCACHE=
env GOPATH=${:}$WORK/this/is/ignored

go env GOMODCACHE
stdout '^$'
! stdout .
! stderr .

! go mod download rsc.io/quote@v1.0.0
stderr '^go: module cache not found: neither GOMODCACHE nor GOPATH is set$'

# 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 --
