| # Check that 'go get -u' will upgrade a dependency (direct or indirect) |
| # when the main module and the dependency are both lazy. |
| # Verifies #47768. |
| |
| # Check that go.mod is tidy, and an upgrade is available. |
| cp go.mod go.mod.orig |
| go mod tidy |
| cmp go.mod go.mod.orig |
| |
| go list -m -u example.com/lazyupgrade |
| stdout '^example.com/lazyupgrade v0.1.0 \[v0.1.1\] => ./lazyupgrade@v0.1.0$' |
| |
| # 'go get -u' on a package that directly imports the dependency should upgrade. |
| go get -u ./usedirect |
| go list -m example.com/lazyupgrade |
| stdout '^example.com/lazyupgrade v0.1.1 => ./lazyupgrade@v0.1.1$' |
| cp go.mod.orig go.mod |
| |
| # 'go get -u' on a package that indirectly imports the dependency should upgrade. |
| go get -u ./useindirect |
| go list -m example.com/lazyupgrade |
| stdout '^example.com/lazyupgrade v0.1.1 => ./lazyupgrade@v0.1.1$' |
| |
| -- go.mod -- |
| module use |
| |
| go 1.17 |
| |
| require ( |
| direct v0.0.0 |
| example.com/lazyupgrade v0.1.0 |
| ) |
| |
| replace ( |
| direct => ./direct |
| example.com/lazyupgrade v0.1.0 => ./lazyupgrade@v0.1.0 |
| example.com/lazyupgrade v0.1.1 => ./lazyupgrade@v0.1.1 |
| ) |
| -- usedirect/usedirect.go -- |
| package use |
| |
| import _ "example.com/lazyupgrade" |
| -- useindirect/useindirect.go -- |
| package use |
| |
| import _ "direct" |
| -- direct/go.mod -- |
| module direct |
| |
| go 1.17 |
| |
| require example.com/lazyupgrade v0.1.0 |
| -- direct/direct.go -- |
| package direct |
| |
| import _ "example.com/lazyupgrade" |
| -- lazyupgrade@v0.1.0/go.mod -- |
| module example.com/lazyupgrade |
| |
| go 1.17 |
| -- lazyupgrade@v0.1.0/lazyupgrade.go -- |
| package lazyupgrade |
| -- lazyupgrade@v0.1.1/go.mod -- |
| module example.com/lazyupgrade |
| |
| go 1.17 |
| -- lazyupgrade@v0.1.1/lazyupgrade.go -- |
| package lazyupgrade |