Skip to content

Commit 5ee6f1a

Browse files
avargitster
authored andcommitted
grep: add tests for grep pattern types being passed to submodules
Add testing for grep pattern types being correctly passed to submodules. The pattern "(.|.)[\d]" matches differently under fixed (not at all), and then matches different lines under basic/extended & perl regular expressions, so this change asserts that the pattern type is passed along correctly. Signed-off-by: Ævar Arnfjörð Bjarmason <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 5d52a30 commit 5ee6f1a

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

t/t7814-grep-recurse-submodules.sh

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,4 +313,53 @@ test_incompatible_with_recurse_submodules ()
313313
test_incompatible_with_recurse_submodules --untracked
314314
test_incompatible_with_recurse_submodules --no-index
315315

316+
test_expect_success 'grep --recurse-submodules should pass the pattern type along' '
317+
# Fixed
318+
test_must_fail git grep -F --recurse-submodules -e "(.|.)[\d]" &&
319+
test_must_fail git -c grep.patternType=fixed grep --recurse-submodules -e "(.|.)[\d]" &&
320+
321+
# Basic
322+
git grep -G --recurse-submodules -e "(.|.)[\d]" >actual &&
323+
cat >expect <<-\EOF &&
324+
a:(1|2)d(3|4)
325+
submodule/a:(1|2)d(3|4)
326+
submodule/sub/a:(1|2)d(3|4)
327+
EOF
328+
test_cmp expect actual &&
329+
git -c grep.patternType=basic grep --recurse-submodules -e "(.|.)[\d]" >actual &&
330+
test_cmp expect actual &&
331+
332+
# Extended
333+
git grep -E --recurse-submodules -e "(.|.)[\d]" >actual &&
334+
cat >expect <<-\EOF &&
335+
.gitmodules:[submodule "submodule"]
336+
.gitmodules: path = submodule
337+
.gitmodules: url = ./submodule
338+
a:(1|2)d(3|4)
339+
submodule/.gitmodules:[submodule "sub"]
340+
submodule/a:(1|2)d(3|4)
341+
submodule/sub/a:(1|2)d(3|4)
342+
EOF
343+
test_cmp expect actual &&
344+
git -c grep.patternType=extended grep --recurse-submodules -e "(.|.)[\d]" >actual &&
345+
test_cmp expect actual &&
346+
git -c grep.extendedRegexp=true grep --recurse-submodules -e "(.|.)[\d]" >actual &&
347+
test_cmp expect actual &&
348+
349+
# Perl
350+
if test_have_prereq PCRE
351+
then
352+
git grep -P --recurse-submodules -e "(.|.)[\d]" >actual &&
353+
cat >expect <<-\EOF &&
354+
a:(1|2)d(3|4)
355+
b/b:(3|4)
356+
submodule/a:(1|2)d(3|4)
357+
submodule/sub/a:(1|2)d(3|4)
358+
EOF
359+
test_cmp expect actual &&
360+
git -c grep.patternType=perl grep --recurse-submodules -e "(.|.)[\d]" >actual &&
361+
test_cmp expect actual
362+
fi
363+
'
364+
316365
test_done

0 commit comments

Comments
 (0)