blob: 239c7caa4a2246e87eaaef22b2ace9ce6ba800dc [file] [log] [blame]
env GO111MODULE=on
[short] skip
# list {{.Dir}} shows main module and go.mod but not not-yet-downloaded dependency dir.
go list -mod=mod -m -f '{{.Path}} {{.Main}} {{.GoMod}} {{.Dir}}' all
stdout '^x true .*[\\/]src[\\/]go.mod .*[\\/]src$'
stdout '^ false .*[\\/]v1.5.2.mod $'
# list {{.Dir}} shows dependency after download (and go list without -m downloads it)
go list -mod=mod -f '{{.Dir}}'
stdout '.*mod[\\/][\\/]quote@v1.5.2$'
# downloaded dependencies are read-only
exists -readonly $GOPATH/pkg/mod/
exists -readonly $GOPATH/pkg/mod/
# go clean -modcache can delete read-only dependencies
go clean -modcache
! exists $GOPATH/pkg/mod/
# list {{.Dir}} shows replaced directories
cp go.mod2 go.mod
go list -mod=mod -f {{.Dir}}
go list -m -f '{{.Path}} {{.Version}} {{.Dir}}{{with .Replace}} {{.GoMod}} => {{.Version}} {{.Dir}} {{.GoMod}}{{end}}' all
stdout 'mod[\\/][\\/]quote@v1.5.1'
stdout 'v1.3.0.*mod[\\/][\\/]sampler@v1.3.1 .*[\\/]v1.3.1.mod => v1.3.1.*sampler@v1.3.1 .*[\\/]v1.3.1.mod'
# list std should work
go list std
stdout ^math/big
# should be listable as a package,
# even though it is only a test.
go list -mod=mod
# should not be listable as a module
go list -m -e -f '{{.Error.Err}}' nonexist
stdout '^module nonexist: not a known dependency$'
stdout '^module not a known dependency$'
! go list -m nonexist
stderr '^go list -m: module nonexist: not a known dependency'
stderr '^go list -m: module not a known dependency'
# Module loader does not interfere with list -e (
go list -e -f '{{.Error.Err}}' database
stdout 'no Go files in '
! go list database
stderr 'no Go files in '
-- go.mod --
module x
require v1.5.2
-- go.mod2 --
module x
require v1.5.1
replace v1.3.0 => v1.3.1
-- x.go --
package x
import _ ""