| cp go.work go.work.orig |
| |
| # If the current directory contains a go.mod file, |
| # 'go work use .' should add an entry for it. |
| cd bar/baz |
| go work use . |
| cmp ../../go.work ../../go.work.rel |
| |
| # If the current directory lacks a go.mod file, 'go work use .' |
| # should remove its entry. |
| mv go.mod go.mod.bak |
| go work use . |
| cmp ../../go.work ../../go.work.orig |
| |
| # If the path is absolute, it should remain absolute. |
| mv go.mod.bak go.mod |
| go work use $PWD |
| grep -count=1 '^use ' ../../go.work |
| grep '^use ["]?'$PWD'["]?$' ../../go.work |
| |
| # An absolute path should replace an entry for the corresponding relative path |
| # and vice-versa. |
| go work use . |
| cmp ../../go.work ../../go.work.rel |
| go work use $PWD |
| grep -count=1 '^use ' ../../go.work |
| grep '^use ["]?'$PWD'["]?$' ../../go.work |
| |
| # If both the absolute and relative paths are named, 'go work use' should error |
| # out: we don't know which one to use, and shouldn't add both because the |
| # resulting workspace would contain a duplicate module. |
| cp ../../go.work.orig ../../go.work |
| ! go work use $PWD . |
| stderr '^go: already added "\./bar/baz" as "'$PWD'"$' |
| cmp ../../go.work ../../go.work.orig |
| |
| |
| -- go.mod -- |
| module example |
| go 1.18 |
| -- go.work -- |
| go 1.18 |
| -- go.work.rel -- |
| go 1.18 |
| |
| use ./bar/baz |
| -- bar/baz/go.mod -- |
| module example/bar/baz |
| go 1.18 |