4 # -mod=readonly must not resolve missing modules nor update go.mod
5 env GOFLAGS=-mod=readonly
9 stderr '^can''t load package: x.go:2:8: cannot find module providing package rsc\.io/quote: import lookup disabled by -mod=readonly'
10 cmp go.mod go.mod.empty
12 # -mod=readonly should be set implicitly if the go.mod file is read-only
16 stderr '^can''t load package: x.go:2:8: cannot find module providing package rsc\.io/quote: import lookup disabled by -mod=readonly\n\t\(go.mod file is read-only\.\)$'
19 env GOFLAGS=-mod=readonly
21 # update go.mod - go get allowed
23 grep rsc.io/quote go.mod
25 # update go.mod - go mod tidy allowed
26 cp go.mod.empty go.mod
30 # -mod=readonly must succeed once go.mod is up-to-date...
33 # ... even if it needs downloads
37 # -mod=readonly must not cause 'go list -m' to fail.
38 # (golang.org/issue/36478)
40 ! stderr 'cannot query module'
42 # -mod=readonly should reject inconsistent go.mod files
43 # (ones that would be rewritten).
44 go mod edit -require rsc.io/sampler@v1.2.0
45 cp go.mod go.mod.inconsistent
47 stderr 'go: updates to go.mod needed, disabled by -mod=readonly'
48 cmp go.mod go.mod.inconsistent
50 # However, it should not reject files missing a 'go' directive,
51 # since that was not always required.
55 # Nor should it reject files with redundant (not incorrect)
57 cp go.mod.redundant go.mod
60 cp go.mod.indirect go.mod
70 import _ "rsc.io/quote"
76 rsc.io/testonly v1.0.0 // indirect
78 -- go.mod.redundant --
85 rsc.io/sampler v1.3.0 // indirect
86 rsc.io/testonly v1.0.0 // indirect
94 rsc.io/quote v1.5.2 // indirect
95 rsc.io/sampler v1.3.0 // indirect
96 rsc.io/testonly v1.0.0 // indirect