env GO111MODULE=off

# Integration test for cache directory calculation (cmd/go/internal/cache).

[GOOS:windows] skip 'windows does not use XDG_CACHE_HOME'
[GOOS:darwin]  skip 'darwin does not use XDG_CACHE_HOME'
[GOOS:ios]     skip 'ios does not use XDG_CACHE_HOME'
[GOOS:plan9]   skip 'plan9 does not use XDG_CACHE_HOME'

mkdir $WORK/gocache
mkdir $WORK/xdg
mkdir $WORK/home

# Set GOCACHE, XDG_CACHE_HOME, and HOME.
env GOCACHE=$WORK/gocache
env XDG_CACHE_HOME=$WORK/xdg
env HOME=$WORK/home

# With all three set, we should prefer GOCACHE.
go env GOCACHE
stdout $WORK'/gocache$'

# Without GOCACHE, we should prefer XDG_CACHE_HOME over HOME.
env GOCACHE=
go env GOCACHE
stdout $WORK'/xdg/go-build$$'

# With only HOME set, we should use $HOME/.cache.
env XDG_CACHE_HOME=
go env GOCACHE
stdout $WORK'/home/.cache/go-build$'

# With no guidance from the environment, we must disable the cache, but that
# should not cause commands that do not write to the cache to fail.
env HOME=
go env GOCACHE
stdout 'off'
