# The build cache is required to build anything. It also may be needed to
# initialize the build system, which is needed for commands like 'go env'.
# However, there are lots of commands the cache is not needed for, and we
# shouldn't require it when it won't be used.
#
# TODO(golang.org/issue/39882): commands below should work, too.
# * go clean -modcache
# * go env
# * go fix
# * go fmt
# * go generate
# * go get -d
# * go list (without -export or -compiled)

env GOCACHE=off

# Commands that don't completely load packages should work.
[!gccgo] go doc fmt
[!gccgo] stdout Printf

[!gccgo] ! go tool compile -h
[!gccgo] stderr usage:

go version
stdout '^go version'


# Module commands that don't load packages should work.
go mod init m
exists go.mod

go mod edit -require rsc.io/quote@v1.5.2

go mod download rsc.io/quote

go mod graph
stdout rsc.io/quote

go mod verify


# Commands that load but don't build packages should work.
go fmt .

[!gccgo] go doc .

-- main.go --
package main

func main() {}
