diff options
Diffstat (limited to 'src/cmd/go/testdata/script/mod_sum_issue56222.txt')
-rw-r--r-- | src/cmd/go/testdata/script/mod_sum_issue56222.txt | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/cmd/go/testdata/script/mod_sum_issue56222.txt b/src/cmd/go/testdata/script/mod_sum_issue56222.txt new file mode 100644 index 00000000000..841553941e3 --- /dev/null +++ b/src/cmd/go/testdata/script/mod_sum_issue56222.txt @@ -0,0 +1,67 @@ +# Regression test for #56222: 'go get -t' and 'go mod tidy' +# should save enough checksums to run 'go test' on the named +# packages or any package in "all" respectively. + +# At go 1.19 or earlier, 'go mod tidy' should preserve the historical go.sum +# contents, but 'go test' should flag the missing checksums (instead of trying +# to build the test dependency with the wrong language version). + +cd m1 +go mod tidy +! go test -o $devnull -c example.com/m2/q +stderr '^# example.com/m2/q\n'..${/}m2${/}q${/}'q_test.go:3:8: example.com/generics@v1.0.0: missing go.sum entry for go.mod file; to add it:\n\tgo mod download example.com/generics$' + +go mod download -json example.com/generics +go list -f '{{if eq .ImportPath "example.com/generics"}}{{.Module.GoVersion}}{{end}}' -deps -test example.com/m2/q +stdout 1.18 + + +# Even at go 1.19 or earlier, 'go mod tidy' shouldn't need go.mod files or +# checksums that it won't record. + +go mod tidy -go=1.19 +go clean -modcache # Remove checksums from the module cache, so that only go.sum is used. + +env OLDSUMDB=$GOSUMDB +env GOSUMDB=bad +go mod tidy + +env GOSUMDB=$OLDSUMDB + + +# Regardless of the go version in go.mod, 'go get -t' should fetch +# enough checksums to run 'go test' on the named package. + +rm p +go mod tidy -go=1.19 +go list -m all +! stdout example.com/generics +go get -t example.com/m2/q@v1.0.0 +go list -f '{{if eq .ImportPath "example.com/generics"}}{{.Module.GoVersion}}{{end}}' -deps -test example.com/m2/q +stdout 1.18 +[!short] go test -o $devnull -c example.com/m2/q + + +-- m1/go.mod -- +module example.com/m1 + +go 1.19 + +require example.com/m2 v1.0.0 +replace example.com/m2 => ../m2 +-- m1/p/p.go -- +package p + +import _ "example.com/m2/q" +-- m2/go.mod -- +module example.com/m2 + +go 1.19 + +require example.com/generics v1.0.0 +-- m2/q/q.go -- +package q +-- m2/q/q_test.go -- +package q + +import _ "example.com/generics" |