mirror of
https://github.com/git/git.git
synced 2024-12-18 14:24:11 +08:00
grep: Add basic tests
This modest patch adds simple tests for git grep -P/--perl-regexp and its interoperation with -i and -w. Tests are only enabled when prerequisite LIBPCRE is defined (it's automatically set based on USE_LIBPCRE in test-lib.sh). Signed-off-by: Michał Kiedrowicz <michal.kiedrowicz@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a119f91e57
commit
8f852ce613
5
t/README
5
t/README
@ -587,6 +587,11 @@ use these, and "test_set_prereq" for how to define your own.
|
|||||||
Test is not run by root user, and an attempt to write to an
|
Test is not run by root user, and an attempt to write to an
|
||||||
unwritable file is expected to fail correctly.
|
unwritable file is expected to fail correctly.
|
||||||
|
|
||||||
|
- LIBPCRE
|
||||||
|
|
||||||
|
Git was compiled with USE_LIBPCRE=YesPlease. Wrap any tests
|
||||||
|
that use git-grep --perl-regexp or git-grep -P in these.
|
||||||
|
|
||||||
Tips for Writing Tests
|
Tips for Writing Tests
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
@ -26,6 +26,12 @@ test_expect_success setup '
|
|||||||
echo foo mmap bar_mmap
|
echo foo mmap bar_mmap
|
||||||
echo foo_mmap bar mmap baz
|
echo foo_mmap bar mmap baz
|
||||||
} >file &&
|
} >file &&
|
||||||
|
{
|
||||||
|
echo Hello world
|
||||||
|
echo HeLLo world
|
||||||
|
echo Hello_world
|
||||||
|
echo HeLLo_world
|
||||||
|
} >hello_world &&
|
||||||
echo vvv >v &&
|
echo vvv >v &&
|
||||||
echo ww w >w &&
|
echo ww w >w &&
|
||||||
echo x x xx x >x &&
|
echo x x xx x >x &&
|
||||||
@ -599,4 +605,36 @@ test_expect_success 'grep -e -- -- path' '
|
|||||||
test_cmp expected actual
|
test_cmp expected actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
cat >expected <<EOF
|
||||||
|
hello.c:int main(int argc, const char **argv)
|
||||||
|
hello.c: printf("Hello world.\n");
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_expect_success LIBPCRE 'grep --perl-regexp pattern' '
|
||||||
|
git grep --perl-regexp "\p{Ps}.*?\p{Pe}" hello.c >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success LIBPCRE 'grep -P pattern' '
|
||||||
|
git grep -P "\p{Ps}.*?\p{Pe}" hello.c >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success LIBPCRE 'grep -P -i pattern' '
|
||||||
|
{
|
||||||
|
echo "hello.c: printf(\"Hello world.\n\");"
|
||||||
|
} >expected &&
|
||||||
|
git grep -P -i "PRINTF\([^\d]+\)" hello.c >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success LIBPCRE 'grep -P -w pattern' '
|
||||||
|
{
|
||||||
|
echo "hello_world:Hello world"
|
||||||
|
echo "hello_world:HeLLo world"
|
||||||
|
} >expected &&
|
||||||
|
git grep -P -w "He((?i)ll)o" hello_world >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -1067,6 +1067,7 @@ esac
|
|||||||
|
|
||||||
test -z "$NO_PERL" && test_set_prereq PERL
|
test -z "$NO_PERL" && test_set_prereq PERL
|
||||||
test -z "$NO_PYTHON" && test_set_prereq PYTHON
|
test -z "$NO_PYTHON" && test_set_prereq PYTHON
|
||||||
|
test -n "$USE_LIBPCRE" && test_set_prereq LIBPCRE
|
||||||
|
|
||||||
# Can we rely on git's output in the C locale?
|
# Can we rely on git's output in the C locale?
|
||||||
if test -n "$GETTEXT_POISON"
|
if test -n "$GETTEXT_POISON"
|
||||||
|
Loading…
Reference in New Issue
Block a user