| # Check that with -mod=readonly, when we load a package in a module that is |
| # replaced but not required, we emit an error with the command to add the |
| # requirement. |
| # Verifies golang.org/issue/41416, golang.org/issue/41577. |
| cp go.mod go.mod.orig |
| |
| # Replace all versions of a module without requiring it. |
| # With -mod=mod, we'd add a requirement for a "zero" pseudo-version, but we |
| # can't in readonly mode, since its go.mod may alter the build list. |
| go mod edit -replace rsc.io/quote=./quote |
| ! go list rsc.io/quote |
| stderr '^module rsc.io/quote provides package rsc.io/quote and is replaced but not required; to add it:\n\tgo get rsc.io/quote$' |
| go get rsc.io/quote |
| cmp go.mod go.mod.latest |
| go list rsc.io/quote |
| cp go.mod.orig go.mod |
| |
| # Same test with a specific version. |
| go mod edit -replace rsc.io/quote@v1.0.0-doesnotexist=./quote |
| ! go list rsc.io/quote |
| stderr '^module rsc.io/quote provides package rsc.io/quote and is replaced but not required; to add it:\n\tgo get rsc.io/quote@v1.0.0-doesnotexist$' |
| go get rsc.io/quote@v1.0.0-doesnotexist |
| cmp go.mod go.mod.specific |
| go list rsc.io/quote |
| cp go.mod.orig go.mod |
| |
| # If there are multiple versions, the highest is suggested. |
| go mod edit -replace rsc.io/quote@v1.0.0-doesnotexist=./quote |
| go mod edit -replace rsc.io/quote@v1.1.0-doesnotexist=./quote |
| ! go list rsc.io/quote |
| stderr '^module rsc.io/quote provides package rsc.io/quote and is replaced but not required; to add it:\n\tgo get rsc.io/quote@v1.1.0-doesnotexist$' |
| |
| -- go.mod -- |
| module m |
| |
| go 1.16 |
| -- go.mod.latest -- |
| module m |
| |
| go 1.16 |
| |
| replace rsc.io/quote => ./quote |
| |
| require rsc.io/quote v1.5.2 // indirect |
| -- go.mod.specific -- |
| module m |
| |
| go 1.16 |
| |
| replace rsc.io/quote v1.0.0-doesnotexist => ./quote |
| |
| require rsc.io/quote v1.0.0-doesnotexist // indirect |
| -- use.go -- |
| package use |
| |
| import _ "rsc.io/quote" |
| -- quote/go.mod -- |
| module rsc.io/quote |
| |
| go 1.16 |
| -- quote/quote.go -- |
| package quote |