aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/testdata/script/build_GOTMPDIR.txt
blob: 1073517c29891caf86c289af31ca6e8d2afe462f (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
41
42
43
44
45
46
47
48
49
50
# Set GOCACHE to a clean directory to ensure that 'go build' has work to report.
[!windows] env GOCACHE=$WORK/gocache
[windows] env GOCACHE=$WORK\gocache

# 'go build' should use GOTMPDIR if set.
[!windows] env GOTMPDIR=$WORK/my-favorite-tmpdir
[windows] env GOTMPDIR=$WORK\my-favorite-tmpdir
mkdir $GOTMPDIR
go build -x hello.go
stderr ^WORK=.*my-favorite-tmpdir

# Make GOTMPDIR a regular file. This prevents the creation of work directories,
# so we can check that certain commands don't create them.
# This simulates running on a full disk or a read-only volume.
rm $GOTMPDIR
cp hello.go $GOTMPDIR # any file will do

# 'go build' should fail if GOTMPDIR is read-only.
! go build -x .
stderr '^go: creating work dir: \w+ '$GOTMPDIR

# 'go list' should only fail if it needs to build something.
go list -x .
! stderr 'creating work dir'
stdout m
go list -m all
stdout m
! go list -x -export .
stderr '^go: creating work dir: \w+ '$GOTMPDIR

# 'go clean -cache' and 'go clean -modcache' should not fail.
go clean -x -cache
! stderr 'creating work dir'
go clean -x -modcache
! stderr 'creating work dir'

# 'go env' should not fail for specific variables.
# Without arguments, it needs to initialize a builder to load cgo flags, and
# that uses a temporary directory.
! go env
stderr '^go: creating work dir: \w+ '$GOTMPDIR
go env GOROOT

-- go.mod --
module m

go 1.15
-- hello.go --
package main
func main() { println("hello") }