| # Test go mod tidy -diff |
| # If set, -diff should not update go.mod or go.sum and instead return a non-zero exit code if updates are needed. |
| |
| # Missing go.mod and go.sum should fail and not display diff. |
| ! exists go.mod |
| ! exists go.sum |
| ! go mod tidy -diff |
| ! exists go.mod |
| ! exists go.sum |
| ! stdout 'diff current/go.mod tidy/go.mod' |
| ! stdout 'diff current/go.sum tidy/go.sum' |
| stderr 'go.mod file not found' |
| |
| # Missing go.mod and existing go.sum should fail and not display diff. |
| cp go.sum.orig go.sum |
| ! exists go.mod |
| exists go.sum |
| ! go mod tidy -diff |
| ! exists go.mod |
| ! stdout 'diff current/go.mod tidy/go.mod' |
| ! stdout 'diff current/go.sum tidy/go.sum' |
| stderr 'go.mod file not found' |
| |
| # Existing go.mod and missing go.sum should display diff. |
| go mod init example.com |
| go mod tidy |
| rm go.sum |
| exists go.mod |
| ! exists go.sum |
| ! go mod tidy -diff |
| ! exists go.sum |
| ! stdout 'diff current/go.mod tidy/go.mod' |
| stdout 'diff current/go.sum tidy/go.sum' |
| |
| # Everything is tidy, should return zero exit code. |
| go mod tidy |
| go mod tidy -diff |
| ! stdout 'diff current/go.mod tidy/go.mod' |
| ! stdout 'diff current/go.sum tidy/go.sum' |
| |
| # go.mod requires updates, should return non-zero exit code. |
| cp go.mod.orig go.mod |
| ! go mod tidy -diff |
| stdout 'diff current/go.mod tidy/go.mod' |
| ! stdout 'diff current/go.sum tidy/go.sum' |
| cmp go.mod.orig go.mod |
| |
| # go.sum requires updates, should return non-zero exit code. |
| go mod tidy |
| cp go.sum.orig go.sum |
| ! go mod tidy -diff |
| ! stdout 'diff current/go.mod tidy/go.mod' |
| stdout 'diff current/go.sum tidy/go.sum' |
| cmp go.sum.orig go.sum |
| |
| # go.mod and go.sum require updates, should return non-zero exit code. |
| cp go.mod.orig go.mod |
| cp go.sum.orig go.sum |
| ! go mod tidy -diff |
| stdout 'diff current/go.mod tidy/go.mod' |
| stdout 'diff current/go.sum tidy/go.sum' |
| cmp go.mod.orig go.mod |
| cmp go.sum.orig go.sum |
| |
| # Save the result from running tidy. |
| [exec:patch] cp go.mod.orig go.mod |
| [exec:patch] cp go.sum.orig go.sum |
| [exec:patch] go mod tidy |
| [exec:patch] cp go.mod go.mod.tidyResult |
| [exec:patch] cp go.sum go.sum.tidyResult |
| |
| # Compare output of -diff to running tidy. |
| # Apply the patch from -diff |
| [exec:patch] cp go.mod.orig go.mod |
| [exec:patch] cp go.sum.orig go.sum |
| [exec:patch] ! go mod tidy -diff |
| [exec:patch] cp stdout diff.patch |
| [exec:patch] exec patch -p1 -i diff.patch |
| [exec:patch] go mod tidy -diff |
| [exec:patch] ! stdout . |
| [exec:patch] cmp go.mod go.mod.tidyResult |
| [exec:patch] cmp go.sum go.sum.tidyResult |
| |
| |
| -- main.go -- |
| package main |
| |
| import "rsc.io/quote" |
| |
| func main() { |
| println(quote.Hello()) |
| } |
| |
| -- go.mod.orig -- |
| module example.com |
| |
| go 1.22 |
| -- go.sum.orig -- |
| rsc.io/quote v1.5.2 h1:3fEykkD9k7lYzXqCYrwGAf7iNhbk4yCjHmKBN9td4L0= |