blob: 2ba25ca29358b28a866e8dfdbb1155274b64c3f5 [file]
# go list should skip 'ignore' directives
# See golang.org/issue/42965
env ROOT=$WORK${/}gopath${/}src
# no ignore directive; should not skip any directories.
cp go.mod.orig go.mod
go list -x ./...
stdout 'example/foo/secret'
stdout 'example/pkg/foo'
stdout 'example/pkg/fo$'
! stderr 'ignoring directory'
# ignored ./foo should be skipped.
cp go.mod.relative go.mod
go list -x ./...
stdout 'example/pkg/foo'
stdout 'example/pkg/fo$'
! stdout 'example/foo/secret'
stderr 'ignoring directory '$ROOT''${/}'foo'
! stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
# ignored foo; any foo should be skipped.
cp go.mod.any go.mod
go list -x ./...
stdout 'example/pkg/fo$'
! stdout 'example/pkg/foo'
! stdout 'example/foo/secret'
stderr 'ignoring directory '$ROOT''${/}'foo'
stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
# non-existent ignore; should not skip any directories.
cp go.mod.dne go.mod
go list -x ./...
stdout 'example/foo/secret'
stdout 'example/pkg/foo'
stdout 'example/pkg/fo$'
! stderr 'ignoring directory'
# ignored fo; should not skip foo/ and should skip fo/
cp go.mod.partial go.mod
go list -x ./...
! stderr 'ignoring directory '$ROOT''${/}'foo'
stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'fo$'
! stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
# ignored pkg/foo; should skip pkg/foo/
cp go.mod.tree go.mod
go list -x ./...
stdout 'example/foo/secret'
stdout 'example/pkg/fo$'
stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
# ignored /pkg/foo/; should skip pkg/foo/
cp go.mod.sep1 go.mod
go list -x ./...
stdout 'example/foo/secret'
stdout 'example/pkg/fo$'
stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
# ignored pkg/foo/; should skip pkg/foo/
cp go.mod.sep2 go.mod
go list -x ./...
stdout 'example/foo/secret'
stdout 'example/pkg/fo$'
stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
# ignored /pkg/foo; should skip pkg/foo/
cp go.mod.sep3 go.mod
go list -x ./...
stdout 'example/foo/secret'
stdout 'example/pkg/fo$'
stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
-- foo/secret/secret.go --
package secret
const Secret = "this should be ignored"
-- pkg/foo/foo.go --
package foo
const Bar = "Hello from foo!"
-- pkg/fo/fo.go --
package fo
const Gar = "Hello from fo!"
-- go.mod.orig --
module example
go 1.24
-- go.mod.relative --
module example
go 1.24
ignore ./foo
-- go.mod.any --
module example
go 1.24
ignore foo
-- go.mod.dne --
module example
go 1.24
ignore bar
-- go.mod.partial --
module example
go 1.24
ignore fo
-- go.mod.tree --
module example
go 1.24
ignore pkg/foo
-- go.mod.sep1 --
module example
go 1.24
ignore /pkg/foo/
-- go.mod.sep2 --
module example
go 1.24
ignore pkg/foo/
-- go.mod.sep3 --
module example
go 1.24
ignore /pkg/foo
-- main.go --
package main
func main() {}