...
Text file
src/cmd/go/testdata/script/install_modcacherw_issue64282.txt
1# Regression test for https://go.dev/issue/64282.
2#
3# 'go install' and 'go run' with pkg@version arguments should make
4# a best effort to parse flags relevant to downloading modules
5# (currently only -modcacherw) before actually downloading the module
6# to identify which toolchain version to use.
7#
8# However, the best-effort flag parsing should not interfere with
9# actual flag parsing if we don't switch toolchains. In particular,
10# unrecognized flags should still be diagnosed after the module for
11# the requested package has been downloaded and checked for toolchain
12# upgrades.
13
14
15! go install -cake=delicious -modcacherw example.com/printversion@v0.1.0
16stderr '^flag provided but not defined: -cake$'
17 # Because the -modcacherw flag was set, we should be able to modify the contents
18 # of a directory within the module cache.
19cp $WORK/extraneous.txt $GOPATH/pkg/mod/example.com/printversion@v0.1.0/extraneous_file.go
20go clean -modcache
21
22
23! go install -unknownflag -tags -modcacherw example.com/printversion@v0.1.0
24stderr '^flag provided but not defined: -unknownflag$'
25cp $WORK/extraneous.txt $GOPATH/pkg/mod/example.com/printversion@v0.1.0/extraneous_file.go
26go clean -modcache
27
28
29# Also try it with a 'go install' that succeeds.
30# (But skip in short mode, because linking a binary is expensive.)
31[!short] go install -modcacherw example.com/printversion@v0.1.0
32[!short] cp $WORK/extraneous.txt $GOPATH/pkg/mod/example.com/printversion@v0.1.0/extraneous_file.go
33[!short] go clean -modcache
34
35
36# The flag should also be applied if given in GOFLAGS
37# instead of on the command line.
38env GOFLAGS=-modcacherw
39! go install -cake=delicious example.com/printversion@v0.1.0
40stderr '^flag provided but not defined: -cake$'
41cp $WORK/extraneous.txt $GOPATH/pkg/mod/example.com/printversion@v0.1.0/extraneous_file.go
42
43
44-- $WORK/extraneous.txt --
45This is not a Go source file.
View as plain text