...
1# go build ./... should skip 'ignore' directives
2# See golang.org/issue/42965
3
4env ROOT=$WORK${/}gopath${/}src
5
6# no ignore directive; should not skip any directories.
7cp go.mod.orig go.mod
8go build -x ./...
9stderr 'packagefile example/foo/secret'
10stderr 'packagefile example/pkg/foo'
11stderr 'packagefile example/pkg/fo'
12! stderr 'ignoring directory'
13
14# ignored ./foo should be skipped.
15cp go.mod.relative go.mod
16go build -x ./...
17stderr 'packagefile example/pkg/foo'
18stderr 'packagefile example/pkg/fo'
19! stderr 'packagefile example/foo/secret'
20stderr 'ignoring directory '$ROOT''${/}'foo'
21! stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
22
23# ignored foo; any foo should be skipped.
24cp go.mod.any go.mod
25go build -x ./...
26stderr 'packagefile example/pkg/fo'
27! stderr 'packagefile example/pkg/foo'
28! stderr 'packagefile example/foo/secret'
29stderr 'ignoring directory '$ROOT''${/}'foo'
30stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
31
32# non-existent ignore; should not skip any directories.
33cp go.mod.dne go.mod
34go build -x ./...
35stderr 'packagefile example/foo/secret'
36stderr 'packagefile example/pkg/foo'
37stderr 'packagefile example/pkg/fo'
38! stderr 'ignoring directory'
39
40# ignored fo; should not skip foo/ and should skip fo/
41cp go.mod.partial go.mod
42go build -x ./...
43! stderr 'ignoring directory '$ROOT''${/}'foo'
44stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'fo$'
45! stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
46
47# ignored pkg/foo; should skip pkg/foo/
48cp go.mod.tree go.mod
49go build -x ./...
50stderr 'packagefile example/foo/secret'
51stderr 'packagefile example/pkg/fo'
52stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
53
54# ignored /pkg/foo/; should skip pkg/foo/
55cp go.mod.sep1 go.mod
56go build -x ./...
57stderr 'packagefile example/foo/secret'
58stderr 'packagefile example/pkg/fo'
59stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
60
61# ignored pkg/foo/; should skip pkg/foo/
62cp go.mod.sep2 go.mod
63go build -x ./...
64stderr 'packagefile example/foo/secret'
65stderr 'packagefile example/pkg/fo'
66stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
67
68# ignored /pkg/foo; should skip pkg/foo/
69cp go.mod.sep3 go.mod
70go build -x ./...
71stderr 'packagefile example/foo/secret'
72stderr 'packagefile example/pkg/fo'
73stderr 'ignoring directory '$ROOT''${/}'pkg'${/}'foo'
74
75-- foo/secret/secret.go --
76package main
77func main() {}
78-- pkg/foo/foo.go --
79package main
80func main() {}
81-- pkg/fo/fo.go --
82package main
83func main() {}
84-- go.mod.orig --
85module example
86
87go 1.24
88
89-- go.mod.relative --
90module example
91
92go 1.24
93
94ignore ./foo
95
96-- go.mod.any --
97module example
98
99go 1.24
100
101ignore foo
102
103-- go.mod.dne --
104module example
105
106go 1.24
107
108ignore bar
109
110-- go.mod.partial --
111module example
112
113go 1.24
114
115ignore fo
116
117-- go.mod.tree --
118module example
119
120go 1.24
121
122ignore pkg/foo
123
124-- go.mod.sep1 --
125module example
126
127go 1.24
128
129ignore /pkg/foo/
130
131-- go.mod.sep2 --
132module example
133
134go 1.24
135
136ignore pkg/foo/
137
138-- go.mod.sep3 --
139module example
140
141go 1.24
142
143ignore /pkg/foo
144
145-- main.go --
146package main
147func main() {}
View as plain text