-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
We used to find the first match of the pattern and then if the match is not for the entire word, declared that the whole line does not match. But that is wrong. The command "git grep -w -e mmap" should find that a line "foo_mmap bar mmap baz" matches, by tring the second instance of pattern "mmap" on the same line. Problems an earlier round of "fix" had were pointed out by Morten Welinder, which have been incorporated in the t7002 tests. Signed-off-by: Junio C Hamano <junkio@cox.net>
- Loading branch information
Junio C Hamano
committed
Aug 6, 2006
1 parent
0d958ac
commit f25b793
Showing
2 changed files
with
110 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright (c) 2006 Junio C Hamano | ||
# | ||
|
||
test_description='git grep -w | ||
' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success setup ' | ||
{ | ||
echo foo mmap bar | ||
echo foo_mmap bar | ||
echo foo_mmap bar mmap | ||
echo foo mmap bar_mmap | ||
echo foo_mmap bar mmap baz | ||
} >file && | ||
echo x x xx x >x && | ||
echo y yy >y && | ||
echo zzz > z && | ||
git add file x y z && | ||
git commit -m initial | ||
' | ||
|
||
for H in HEAD '' | ||
do | ||
case "$H" in | ||
HEAD) HC='HEAD:' L='HEAD' ;; | ||
'') HC= L='in working tree' ;; | ||
esac | ||
|
||
test_expect_success "grep -w $L" ' | ||
{ | ||
echo ${HC}file:1:foo mmap bar | ||
echo ${HC}file:3:foo_mmap bar mmap | ||
echo ${HC}file:4:foo mmap bar_mmap | ||
echo ${HC}file:5:foo_mmap bar mmap baz | ||
} >expected && | ||
git grep -n -w -e mmap $H >actual && | ||
diff expected actual | ||
' | ||
|
||
test_expect_success "grep -w $L (x)" ' | ||
{ | ||
echo ${HC}x:1:x x xx x | ||
} >expected && | ||
git grep -n -w -e "x xx* x" $H >actual && | ||
diff expected actual | ||
' | ||
|
||
test_expect_success "grep -w $L (y-1)" ' | ||
{ | ||
echo ${HC}y:1:y yy | ||
} >expected && | ||
git grep -n -w -e "^y" $H >actual && | ||
diff expected actual | ||
' | ||
|
||
test_expect_success "grep -w $L (y-2)" ' | ||
: >expected && | ||
if git grep -n -w -e "^y y" $H >actual | ||
then | ||
echo should not have matched | ||
cat actual | ||
false | ||
else | ||
diff expected actual | ||
fi | ||
' | ||
|
||
test_expect_success "grep -w $L (z)" ' | ||
: >expected && | ||
if git grep -n -w -e "^z" $H >actual | ||
then | ||
echo should not have matched | ||
cat actual | ||
false | ||
else | ||
diff expected actual | ||
fi | ||
' | ||
done | ||
|
||
test_done |