| #!/bin/sh |
| # |
| # Copyright (c) 2006 Junio C Hamano |
| # |
| |
| test_description='git grep various. |
| ' |
| |
| . ./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 && |
| mkdir t && |
| echo test >t/t && |
| git add file x y z t/t && |
| 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 |
| ' |
| |
| test_expect_success "grep $L (t-1)" ' |
| echo "${HC}t/t:1:test" >expected && |
| git grep -n -e test $H >actual && |
| diff expected actual |
| ' |
| |
| test_expect_success "grep $L (t-2)" ' |
| echo "${HC}t:1:test" >expected && |
| ( |
| cd t && |
| git grep -n -e test $H |
| ) >actual && |
| diff expected actual |
| ' |
| |
| test_expect_success "grep $L (t-3)" ' |
| echo "${HC}t/t:1:test" >expected && |
| ( |
| cd t && |
| git grep --full-name -n -e test $H |
| ) >actual && |
| diff expected actual |
| ' |
| |
| done |
| |
| test_done |