Skip to content

Commit 5d52a30

Browse files
avargitster
authored andcommitted
grep: amend submodule recursion test for regex engine testing
Amend the submodule recursion test to prepare it for subsequent tests of whether it passes along the grep.patternType to the submodule greps. This is the result of searching & replacing: foobar -> (1|2)d(3|4) foo -> (1|2) bar -> (3|4) Currently there's no tests for whether e.g. -P or -E is correctly passed along, tests for that will be added in a follow-up change, but first add content to the tests which will match differently under different regex engines. Reuse the pattern established in an earlier commit of mine in this series ("log: add exhaustive tests for pattern style options & config", 2017-04-07). The pattern "(.|.)[\d]" will match this content differently under fixed/basic/extended & perl. This test code was originally added in commit 0281e48 ("grep: optionally recurse into submodules", 2016-12-16). Signed-off-by: Ævar Arnfjörð Bjarmason <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent c581365 commit 5d52a30

File tree

1 file changed

+83
-83
lines changed

1 file changed

+83
-83
lines changed

t/t7814-grep-recurse-submodules.sh

Lines changed: 83 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ submodules.
99
. ./test-lib.sh
1010

1111
test_expect_success 'setup directory structure and submodule' '
12-
echo "foobar" >a &&
12+
echo "(1|2)d(3|4)" >a &&
1313
mkdir b &&
14-
echo "bar" >b/b &&
14+
echo "(3|4)" >b/b &&
1515
git add a b &&
1616
git commit -m "add a and b" &&
1717
git init submodule &&
18-
echo "foobar" >submodule/a &&
18+
echo "(1|2)d(3|4)" >submodule/a &&
1919
git -C submodule add a &&
2020
git -C submodule commit -m "add a" &&
2121
git submodule add ./submodule &&
@@ -24,18 +24,18 @@ test_expect_success 'setup directory structure and submodule' '
2424

2525
test_expect_success 'grep correctly finds patterns in a submodule' '
2626
cat >expect <<-\EOF &&
27-
a:foobar
28-
b/b:bar
29-
submodule/a:foobar
27+
a:(1|2)d(3|4)
28+
b/b:(3|4)
29+
submodule/a:(1|2)d(3|4)
3030
EOF
3131
32-
git grep -e "bar" --recurse-submodules >actual &&
32+
git grep -e "(3|4)" --recurse-submodules >actual &&
3333
test_cmp expect actual
3434
'
3535

3636
test_expect_success 'grep and basic pathspecs' '
3737
cat >expect <<-\EOF &&
38-
submodule/a:foobar
38+
submodule/a:(1|2)d(3|4)
3939
EOF
4040
4141
git grep -e. --recurse-submodules -- submodule >actual &&
@@ -44,7 +44,7 @@ test_expect_success 'grep and basic pathspecs' '
4444

4545
test_expect_success 'grep and nested submodules' '
4646
git init submodule/sub &&
47-
echo "foobar" >submodule/sub/a &&
47+
echo "(1|2)d(3|4)" >submodule/sub/a &&
4848
git -C submodule/sub add a &&
4949
git -C submodule/sub commit -m "add a" &&
5050
git -C submodule submodule add ./sub &&
@@ -54,251 +54,251 @@ test_expect_success 'grep and nested submodules' '
5454
git commit -m "updated submodule" &&
5555
5656
cat >expect <<-\EOF &&
57-
a:foobar
58-
b/b:bar
59-
submodule/a:foobar
60-
submodule/sub/a:foobar
57+
a:(1|2)d(3|4)
58+
b/b:(3|4)
59+
submodule/a:(1|2)d(3|4)
60+
submodule/sub/a:(1|2)d(3|4)
6161
EOF
6262
63-
git grep -e "bar" --recurse-submodules >actual &&
63+
git grep -e "(3|4)" --recurse-submodules >actual &&
6464
test_cmp expect actual
6565
'
6666

6767
test_expect_success 'grep and multiple patterns' '
6868
cat >expect <<-\EOF &&
69-
a:foobar
70-
submodule/a:foobar
71-
submodule/sub/a:foobar
69+
a:(1|2)d(3|4)
70+
submodule/a:(1|2)d(3|4)
71+
submodule/sub/a:(1|2)d(3|4)
7272
EOF
7373
74-
git grep -e "bar" --and -e "foo" --recurse-submodules >actual &&
74+
git grep -e "(3|4)" --and -e "(1|2)" --recurse-submodules >actual &&
7575
test_cmp expect actual
7676
'
7777

7878
test_expect_success 'grep and multiple patterns' '
7979
cat >expect <<-\EOF &&
80-
b/b:bar
80+
b/b:(3|4)
8181
EOF
8282
83-
git grep -e "bar" --and --not -e "foo" --recurse-submodules >actual &&
83+
git grep -e "(3|4)" --and --not -e "(1|2)" --recurse-submodules >actual &&
8484
test_cmp expect actual
8585
'
8686

8787
test_expect_success 'basic grep tree' '
8888
cat >expect <<-\EOF &&
89-
HEAD:a:foobar
90-
HEAD:b/b:bar
91-
HEAD:submodule/a:foobar
92-
HEAD:submodule/sub/a:foobar
89+
HEAD:a:(1|2)d(3|4)
90+
HEAD:b/b:(3|4)
91+
HEAD:submodule/a:(1|2)d(3|4)
92+
HEAD:submodule/sub/a:(1|2)d(3|4)
9393
EOF
9494
95-
git grep -e "bar" --recurse-submodules HEAD >actual &&
95+
git grep -e "(3|4)" --recurse-submodules HEAD >actual &&
9696
test_cmp expect actual
9797
'
9898

9999
test_expect_success 'grep tree HEAD^' '
100100
cat >expect <<-\EOF &&
101-
HEAD^:a:foobar
102-
HEAD^:b/b:bar
103-
HEAD^:submodule/a:foobar
101+
HEAD^:a:(1|2)d(3|4)
102+
HEAD^:b/b:(3|4)
103+
HEAD^:submodule/a:(1|2)d(3|4)
104104
EOF
105105
106-
git grep -e "bar" --recurse-submodules HEAD^ >actual &&
106+
git grep -e "(3|4)" --recurse-submodules HEAD^ >actual &&
107107
test_cmp expect actual
108108
'
109109

110110
test_expect_success 'grep tree HEAD^^' '
111111
cat >expect <<-\EOF &&
112-
HEAD^^:a:foobar
113-
HEAD^^:b/b:bar
112+
HEAD^^:a:(1|2)d(3|4)
113+
HEAD^^:b/b:(3|4)
114114
EOF
115115
116-
git grep -e "bar" --recurse-submodules HEAD^^ >actual &&
116+
git grep -e "(3|4)" --recurse-submodules HEAD^^ >actual &&
117117
test_cmp expect actual
118118
'
119119

120120
test_expect_success 'grep tree and pathspecs' '
121121
cat >expect <<-\EOF &&
122-
HEAD:submodule/a:foobar
123-
HEAD:submodule/sub/a:foobar
122+
HEAD:submodule/a:(1|2)d(3|4)
123+
HEAD:submodule/sub/a:(1|2)d(3|4)
124124
EOF
125125
126-
git grep -e "bar" --recurse-submodules HEAD -- submodule >actual &&
126+
git grep -e "(3|4)" --recurse-submodules HEAD -- submodule >actual &&
127127
test_cmp expect actual
128128
'
129129

130130
test_expect_success 'grep tree and pathspecs' '
131131
cat >expect <<-\EOF &&
132-
HEAD:submodule/a:foobar
133-
HEAD:submodule/sub/a:foobar
132+
HEAD:submodule/a:(1|2)d(3|4)
133+
HEAD:submodule/sub/a:(1|2)d(3|4)
134134
EOF
135135
136-
git grep -e "bar" --recurse-submodules HEAD -- "submodule*a" >actual &&
136+
git grep -e "(3|4)" --recurse-submodules HEAD -- "submodule*a" >actual &&
137137
test_cmp expect actual
138138
'
139139

140140
test_expect_success 'grep tree and more pathspecs' '
141141
cat >expect <<-\EOF &&
142-
HEAD:submodule/a:foobar
142+
HEAD:submodule/a:(1|2)d(3|4)
143143
EOF
144144
145-
git grep -e "bar" --recurse-submodules HEAD -- "submodul?/a" >actual &&
145+
git grep -e "(3|4)" --recurse-submodules HEAD -- "submodul?/a" >actual &&
146146
test_cmp expect actual
147147
'
148148

149149
test_expect_success 'grep tree and more pathspecs' '
150150
cat >expect <<-\EOF &&
151-
HEAD:submodule/sub/a:foobar
151+
HEAD:submodule/sub/a:(1|2)d(3|4)
152152
EOF
153153
154-
git grep -e "bar" --recurse-submodules HEAD -- "submodul*/sub/a" >actual &&
154+
git grep -e "(3|4)" --recurse-submodules HEAD -- "submodul*/sub/a" >actual &&
155155
test_cmp expect actual
156156
'
157157

158158
test_expect_success !MINGW 'grep recurse submodule colon in name' '
159159
git init parent &&
160160
test_when_finished "rm -rf parent" &&
161-
echo "foobar" >"parent/fi:le" &&
161+
echo "(1|2)d(3|4)" >"parent/fi:le" &&
162162
git -C parent add "fi:le" &&
163163
git -C parent commit -m "add fi:le" &&
164164
165165
git init "su:b" &&
166166
test_when_finished "rm -rf su:b" &&
167-
echo "foobar" >"su:b/fi:le" &&
167+
echo "(1|2)d(3|4)" >"su:b/fi:le" &&
168168
git -C "su:b" add "fi:le" &&
169169
git -C "su:b" commit -m "add fi:le" &&
170170
171171
git -C parent submodule add "../su:b" "su:b" &&
172172
git -C parent commit -m "add submodule" &&
173173
174174
cat >expect <<-\EOF &&
175-
fi:le:foobar
176-
su:b/fi:le:foobar
175+
fi:le:(1|2)d(3|4)
176+
su:b/fi:le:(1|2)d(3|4)
177177
EOF
178-
git -C parent grep -e "foobar" --recurse-submodules >actual &&
178+
git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules >actual &&
179179
test_cmp expect actual &&
180180
181181
cat >expect <<-\EOF &&
182-
HEAD:fi:le:foobar
183-
HEAD:su:b/fi:le:foobar
182+
HEAD:fi:le:(1|2)d(3|4)
183+
HEAD:su:b/fi:le:(1|2)d(3|4)
184184
EOF
185-
git -C parent grep -e "foobar" --recurse-submodules HEAD >actual &&
185+
git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules HEAD >actual &&
186186
test_cmp expect actual
187187
'
188188

189189
test_expect_success 'grep history with moved submoules' '
190190
git init parent &&
191191
test_when_finished "rm -rf parent" &&
192-
echo "foobar" >parent/file &&
192+
echo "(1|2)d(3|4)" >parent/file &&
193193
git -C parent add file &&
194194
git -C parent commit -m "add file" &&
195195
196196
git init sub &&
197197
test_when_finished "rm -rf sub" &&
198-
echo "foobar" >sub/file &&
198+
echo "(1|2)d(3|4)" >sub/file &&
199199
git -C sub add file &&
200200
git -C sub commit -m "add file" &&
201201
202202
git -C parent submodule add ../sub dir/sub &&
203203
git -C parent commit -m "add submodule" &&
204204
205205
cat >expect <<-\EOF &&
206-
dir/sub/file:foobar
207-
file:foobar
206+
dir/sub/file:(1|2)d(3|4)
207+
file:(1|2)d(3|4)
208208
EOF
209-
git -C parent grep -e "foobar" --recurse-submodules >actual &&
209+
git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules >actual &&
210210
test_cmp expect actual &&
211211
212212
git -C parent mv dir/sub sub-moved &&
213213
git -C parent commit -m "moved submodule" &&
214214
215215
cat >expect <<-\EOF &&
216-
file:foobar
217-
sub-moved/file:foobar
216+
file:(1|2)d(3|4)
217+
sub-moved/file:(1|2)d(3|4)
218218
EOF
219-
git -C parent grep -e "foobar" --recurse-submodules >actual &&
219+
git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules >actual &&
220220
test_cmp expect actual &&
221221
222222
cat >expect <<-\EOF &&
223-
HEAD^:dir/sub/file:foobar
224-
HEAD^:file:foobar
223+
HEAD^:dir/sub/file:(1|2)d(3|4)
224+
HEAD^:file:(1|2)d(3|4)
225225
EOF
226-
git -C parent grep -e "foobar" --recurse-submodules HEAD^ >actual &&
226+
git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules HEAD^ >actual &&
227227
test_cmp expect actual
228228
'
229229

230230
test_expect_success 'grep using relative path' '
231231
test_when_finished "rm -rf parent sub" &&
232232
git init sub &&
233-
echo "foobar" >sub/file &&
233+
echo "(1|2)d(3|4)" >sub/file &&
234234
git -C sub add file &&
235235
git -C sub commit -m "add file" &&
236236
237237
git init parent &&
238-
echo "foobar" >parent/file &&
238+
echo "(1|2)d(3|4)" >parent/file &&
239239
git -C parent add file &&
240240
mkdir parent/src &&
241-
echo "foobar" >parent/src/file2 &&
241+
echo "(1|2)d(3|4)" >parent/src/file2 &&
242242
git -C parent add src/file2 &&
243243
git -C parent submodule add ../sub &&
244244
git -C parent commit -m "add files and submodule" &&
245245
246246
# From top works
247247
cat >expect <<-\EOF &&
248-
file:foobar
249-
src/file2:foobar
250-
sub/file:foobar
248+
file:(1|2)d(3|4)
249+
src/file2:(1|2)d(3|4)
250+
sub/file:(1|2)d(3|4)
251251
EOF
252-
git -C parent grep --recurse-submodules -e "foobar" >actual &&
252+
git -C parent grep --recurse-submodules -e "(1|2)d(3|4)" >actual &&
253253
test_cmp expect actual &&
254254
255255
# Relative path to top
256256
cat >expect <<-\EOF &&
257-
../file:foobar
258-
file2:foobar
259-
../sub/file:foobar
257+
../file:(1|2)d(3|4)
258+
file2:(1|2)d(3|4)
259+
../sub/file:(1|2)d(3|4)
260260
EOF
261-
git -C parent/src grep --recurse-submodules -e "foobar" -- .. >actual &&
261+
git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4)" -- .. >actual &&
262262
test_cmp expect actual &&
263263
264264
# Relative path to submodule
265265
cat >expect <<-\EOF &&
266-
../sub/file:foobar
266+
../sub/file:(1|2)d(3|4)
267267
EOF
268-
git -C parent/src grep --recurse-submodules -e "foobar" -- ../sub >actual &&
268+
git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4)" -- ../sub >actual &&
269269
test_cmp expect actual
270270
'
271271

272272
test_expect_success 'grep from a subdir' '
273273
test_when_finished "rm -rf parent sub" &&
274274
git init sub &&
275-
echo "foobar" >sub/file &&
275+
echo "(1|2)d(3|4)" >sub/file &&
276276
git -C sub add file &&
277277
git -C sub commit -m "add file" &&
278278
279279
git init parent &&
280280
mkdir parent/src &&
281-
echo "foobar" >parent/src/file &&
281+
echo "(1|2)d(3|4)" >parent/src/file &&
282282
git -C parent add src/file &&
283283
git -C parent submodule add ../sub src/sub &&
284284
git -C parent submodule add ../sub sub &&
285285
git -C parent commit -m "add files and submodules" &&
286286
287287
# Verify grep from root works
288288
cat >expect <<-\EOF &&
289-
src/file:foobar
290-
src/sub/file:foobar
291-
sub/file:foobar
289+
src/file:(1|2)d(3|4)
290+
src/sub/file:(1|2)d(3|4)
291+
sub/file:(1|2)d(3|4)
292292
EOF
293-
git -C parent grep --recurse-submodules -e "foobar" >actual &&
293+
git -C parent grep --recurse-submodules -e "(1|2)d(3|4)" >actual &&
294294
test_cmp expect actual &&
295295
296296
# Verify grep from a subdir works
297297
cat >expect <<-\EOF &&
298-
file:foobar
299-
sub/file:foobar
298+
file:(1|2)d(3|4)
299+
sub/file:(1|2)d(3|4)
300300
EOF
301-
git -C parent/src grep --recurse-submodules -e "foobar" >actual &&
301+
git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4)" >actual &&
302302
test_cmp expect actual
303303
'
304304

0 commit comments

Comments
 (0)