mirror of
https://github.com/golang/go
synced 2024-11-07 20:06:21 -07:00
cmd/go: add test cases for 'go list' with bad import paths
Change-Id: I45a675c5f699b23284a2a50b33cb22882f4b3b80 Reviewed-on: https://go-review.googlesource.com/128016 Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
79fe6f9854
commit
8c0fd83f72
67
src/cmd/go/testdata/script/list_bad_import.txt
vendored
Normal file
67
src/cmd/go/testdata/script/list_bad_import.txt
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
# This test matches mod_list_bad_import, but in GOPATH mode.
|
||||
# Please keep them in sync.
|
||||
|
||||
env GO111MODULE=off
|
||||
cd example.com
|
||||
|
||||
# Without -e, listing an otherwise-valid package with an unsatisfied direct import should fail.
|
||||
# BUG: Today it succeeds.
|
||||
go list -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}} {{range .DepsErrors}}bad dep: {{.Err}}{{end}}' example.com/direct
|
||||
! stdout ^error
|
||||
stdout 'incomplete'
|
||||
stdout 'bad dep: .*example.com[/\\]notfound'
|
||||
|
||||
# Listing with -deps should also fail.
|
||||
# BUG: Today, it does not.
|
||||
# ! go list -deps example.com/direct
|
||||
# stderr example.com[/\\]notfound
|
||||
go list -deps example.com/direct
|
||||
stdout example.com/notfound
|
||||
|
||||
|
||||
# Listing an otherwise-valid package that imports some *other* package with an
|
||||
# unsatisfied import should also fail.
|
||||
# BUG: Today, it succeeds.
|
||||
go list -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}} {{range .DepsErrors}}bad dep: {{.Err}}{{end}}' example.com/indirect
|
||||
! stdout ^error
|
||||
stdout incomplete
|
||||
stdout 'bad dep: .*example.com[/\\]notfound'
|
||||
|
||||
# Again, -deps should fail.
|
||||
# BUG: Again, it does not.
|
||||
# ! go list -deps example.com/indirect
|
||||
# stderr example.com[/\\]notfound
|
||||
go list -deps example.com/indirect
|
||||
stdout example.com/notfound
|
||||
|
||||
|
||||
# Listing the missing dependency directly should fail outright...
|
||||
! go list -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}}' example.com/notfound
|
||||
stderr 'no Go files in .*example.com[/\\]notfound'
|
||||
! stdout error
|
||||
! stdout incomplete
|
||||
|
||||
# ...but listing with -e should succeed.
|
||||
go list -e -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}}' example.com/notfound
|
||||
stdout error
|
||||
stdout incomplete
|
||||
|
||||
|
||||
# The pattern "all" should match only packages that acutally exist,
|
||||
# ignoring those whose existence is merely implied by imports.
|
||||
go list -e -f '{{.ImportPath}}' all
|
||||
stdout example.com/direct
|
||||
stdout example.com/indirect
|
||||
! stdout example.com/notfound
|
||||
|
||||
|
||||
-- example.com/direct/direct.go --
|
||||
package direct
|
||||
import _ "example.com/notfound"
|
||||
|
||||
-- example.com/indirect/indirect.go --
|
||||
package indirect
|
||||
import _ "example.com/direct"
|
||||
|
||||
-- example.com/notfound/README --
|
||||
This directory intentionally left blank.
|
59
src/cmd/go/testdata/script/mod_list_bad_import.txt
vendored
Normal file
59
src/cmd/go/testdata/script/mod_list_bad_import.txt
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
# This test matches list_bad_import, but in module mode.
|
||||
# Please keep them in sync.
|
||||
|
||||
env GO111MODULE=on
|
||||
cd example.com
|
||||
|
||||
# Listing an otherwise-valid package with an unsatisfied direct import should succeed,
|
||||
# but name that package in DepsErrors.
|
||||
! go list -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}} {{range .DepsErrors}}bad dep: {{.Err}}{{end}}' example.com/direct
|
||||
stderr example.com[/\\]notfound
|
||||
|
||||
# Listing with -deps should also fail.
|
||||
! go list -deps example.com/direct
|
||||
stderr example.com[/\\]notfound
|
||||
|
||||
|
||||
# Listing an otherwise-valid package that imports some *other* package with an
|
||||
# unsatisfied import should also succeed.
|
||||
# NOTE: This behavior differs between GOPATH mode and module mode.
|
||||
! go list -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}} {{range .DepsErrors}}bad dep: {{.Err}}{{end}}' example.com/indirect
|
||||
stderr example.com[/\\]notfound
|
||||
|
||||
# Again, -deps should fail.
|
||||
! go list -deps example.com/indirect
|
||||
stderr example.com[/\\]notfound
|
||||
|
||||
|
||||
# Listing the missing dependency directly should fail outright...
|
||||
! go list -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}}' example.com/notfound
|
||||
stderr 'cannot find module providing package example.com/notfound'
|
||||
! stdout error
|
||||
! stdout incomplete
|
||||
|
||||
# ...but listing with -e should succeed.
|
||||
# BUG: Today, it fails.
|
||||
! go list -e -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}}' example.com/notfound
|
||||
stderr example.com[/\\]notfound
|
||||
|
||||
|
||||
# The pattern "all" should match only packages that acutally exist,
|
||||
# ignoring those whose existence is merely implied by imports.
|
||||
# BUG: Today, `go list -e` fails if there are any unresolved imports.
|
||||
! go list -e -f '{{.ImportPath}}' all
|
||||
stderr example.com[/\\]notfound
|
||||
|
||||
|
||||
-- example.com/go.mod --
|
||||
module example.com
|
||||
|
||||
-- example.com/direct/direct.go --
|
||||
package direct
|
||||
import _ "example.com/notfound"
|
||||
|
||||
-- example.com/indirect/indirect.go --
|
||||
package indirect
|
||||
import _ "example.com/direct"
|
||||
|
||||
-- example.com/notfound/README --
|
||||
This directory intentionally left blank.
|
Loading…
Reference in New Issue
Block a user