# 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.
go doc fmt
stdout Printf

go fmt .

! go tool compile -h
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

-- main.go --
package main

func main() {}
