| # Check that go line in go.work is always >= go line of used modules. |
| |
| # Using an old Go version, fails during module loading, but we rewrite the error to the |
| # same one a switching version would use, without the auto-switch. |
| # This is a misconfigured system that should not arise in practice. |
| env TESTGO_VERSION=go1.21.1 |
| env TESTGO_VERSION_SWITCH=switch |
| cp go.work go.work.orig |
| ! go list |
| stderr '^go: module . listed in go.work file requires go >= 1.21.2, but go.work lists go 1.21.1; to update it:\n\tgo work use$' |
| go work use |
| go list |
| |
| # Using a new enough Go version, fails later and can suggest 'go work use'. |
| env TESTGO_VERSION=go1.21.2 |
| env TESTGO_VERSION_SWITCH=switch |
| cp go.work.orig go.work |
| ! go list |
| stderr '^go: module . listed in go.work file requires go >= 1.21.2, but go.work lists go 1.21.1; to update it:\n\tgo work use$' |
| |
| # go work use fixes the problem. |
| go work use |
| go list |
| |
| -- go.work -- |
| go 1.21.1 |
| use . |
| |
| -- go.mod -- |
| module m |
| go 1.21.2 |
| |
| -- p.go -- |
| package p |