summaryrefslogtreecommitdiffstats
path: root/src/cmd/go/testdata/script/build_nocache.txt
blob: b21e755e8939fb63ab69ecae07280cfc2db655bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
env GO111MODULE=off

# As of Go 1.12, the module cache is required.

# If none of the variables we use to locate GOCACHE are set, the cache is off
# and we cannot build.
env GOCACHE=
env XDG_CACHE_HOME=
env HOME=
[GOOS:plan9] env home=
[GOOS:windows] env LocalAppData=
! go build -o triv triv.go
stderr 'build cache is required, but could not be located: GOCACHE is not defined and .*'

# If GOCACHE is set but is not an absolute path, and we cannot build.
env GOCACHE=test
! go build -o triv triv.go
stderr 'build cache is required, but could not be located: GOCACHE is not an absolute path'

# An explicit GOCACHE=off also disables builds.
env GOCACHE=off
! go build -o triv triv.go
stderr 'build cache is disabled by GOCACHE=off'

# If GOCACHE is set to an unwritable directory, we should diagnose it as such.
[GOOS:windows] stop # Does not support unwritable directories.
[root] skip # Can write to unwritable directories.

mkdir $WORK/unwritable/home
chmod 0555 $WORK/unwritable/home
[!GOOS:plan9] env HOME=$WORK/unwritable/home
[GOOS:plan9] env home=$WORK/unwritable/home

env GOCACHE=$WORK/unwritable/home
! go build -o triv triv.go
stderr 'failed to initialize build cache.* permission denied'

-- triv.go --
package main
func main() {}