# 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() {}