| env GO111MODULE=on |
| env GOPROXY=off |
| |
| [!gc] skip |
| [short] skip |
| |
| # Outside of GOROOT, our vendored packages should be reported as part of the standard library. |
| go list -f '{{if .Standard}}{{.ImportPath}}{{end}}' std cmd |
| stdout ^vendor/golang\.org/x/net/http2/hpack |
| stdout ^cmd/vendor/golang\.org/x/arch/x86/x86asm |
| ! stdout ^golang\.org/x/ |
| |
| # The dependencies of those packages should also be vendored. |
| go list -deps vendor/golang.org/x/crypto/chacha20 |
| stdout ^vendor/golang\.org/x/crypto/internal/subtle |
| |
| # cmd/... should match the same packages it used to match in GOPATH mode. |
| go list cmd/... |
| stdout ^cmd/compile |
| ! stdout ^cmd/vendor/golang\.org/x/arch/x86/x86asm |
| |
| # GOROOT/src/... should list the packages in std as if it were a module |
| # dependency: omitting vendored dependencies and stopping at the 'cmd' module |
| # boundary. |
| |
| go list $GOROOT/src/... |
| stdout ^bytes$ |
| ! stdout ^builtin$ |
| ! stdout ^cmd/ |
| ! stdout ^vendor/ |
| ! stdout ^golang\.org/x/ |
| |
| |
| # Vendored dependencies should appear with their 'vendor/' paths in std (they're |
| # in GOROOT/src, but not in the 'std' module following the usual module-boundary |
| # rules). |
| |
| cd $GOROOT/src |
| |
| go list std |
| stdout ^vendor/golang.org/x/net/http2/hpack |
| ! stdout ^golang\.org/x |
| |
| # The dependencies of packages with an explicit 'vendor/' prefix should |
| # still themselves resolve to vendored packages. |
| go list -deps vendor/golang.org/x/crypto/chacha20 |
| stdout ^vendor/golang.org/x/crypto/internal/subtle |
| ! stdout ^golang\.org/x |
| |
| # Within the std module, the dependencies of the non-vendored packages within |
| # std should appear to come from modules, but they should be loaded from the |
| # vendor directory (just like ordinary vendored module dependencies). |
| |
| go list all |
| stdout ^golang.org/x/ |
| ! stdout ^std/ |
| ! stdout ^cmd/ |
| ! stdout ^vendor/ |
| |
| go list -deps -f '{{if not .Standard}}{{.ImportPath}}{{end}}' std |
| ! stdout ^vendor/golang.org/x/net/http2/hpack |
| stdout ^golang.org/x/net/http2/hpack |
| |
| go list -f '{{.Dir}}' golang.org/x/net/http2/hpack |
| stdout $GOROOT[/\\]src[/\\]vendor |
| |
| # Within the std module, the packages within the module should omit the 'std/' |
| # prefix (they retain their own identities), but should respect normal module |
| # boundaries (vendored packages are not included in the module, even though they |
| # are included in the 'std' pattern). |
| |
| go list ./... |
| stdout ^bytes$ |
| ! stdout ^builtin$ |
| ! stdout ^cmd/ |
| ! stdout ^vendor/ |
| ! stdout ^golang\.org/x/ |
| |
| |
| # Within std, the vendored dependencies of cmd should still appear to be part of cmd. |
| |
| go list -f '{{if .Standard}}{{.ImportPath}}{{end}}' cmd |
| stdout ^cmd/vendor/golang\.org/x/arch/x86/x86asm |
| |
| go list -f '{{if not .Standard}}{{.ImportPath}}{{end}}' cmd |
| ! stdout . |
| |
| go list cmd/... |
| stdout ^cmd/compile |
| ! stdout ^cmd/vendor/golang\.org/x/arch/x86/x86asm |