diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2013-07-17 17:25:30 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-07-17 18:02:22 -0700 |
commit | 5a9830cb718ce13fcbad39384dd365bb895a1b21 (patch) | |
tree | 096c6e3d9980f16fa89d3f6951a9af02b8fc5eb2 /t/annotate-tests.sh | |
parent | 03e15fc0b61450d6d7388e7514a67e1a9e7b72bd (diff) | |
download | git-5a9830cb718ce13fcbad39384dd365bb895a1b21.tar.gz |
t8001/t8002 (blame): add blame -L :funcname tests
git-blame inherited "-L :funcname" support when "-L :funcname:file" was
implemented for git-log. Add tests.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/annotate-tests.sh')
-rw-r--r-- | t/annotate-tests.sh | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/t/annotate-tests.sh b/t/annotate-tests.sh index b6a747829a..0bfee001b4 100644 --- a/t/annotate-tests.sh +++ b/t/annotate-tests.sh @@ -3,17 +3,19 @@ check_count () { head= && + file='file' && options= && while : do case "$1" in -h) head="$2"; shift; shift ;; + -f) file="$2"; shift; shift ;; -*) options="$options $1"; shift ;; *) break ;; esac done && - echo "$PROG $options file $head" >&4 && - $PROG $options file $head >actual && + echo "$PROG $options $file $head" >&4 && + $PROG $options $file $head >actual && perl -e ' my %expect = (@ARGV); my %count = map { $_ => 0 } keys %expect; @@ -231,6 +233,48 @@ test_expect_success 'blame -L ,Y (Y > nlines)' ' test_must_fail $PROG -L,12345 file ' +test_expect_success 'setup -L :regex' ' + tr Q "\\t" >hello.c <<-\EOF && + int main(int argc, const char *argv[]) + { + Qputs("hello"); + } + EOF + git add hello.c && + GIT_AUTHOR_NAME="F" GIT_AUTHOR_EMAIL="F@test.git" \ + git commit -m "hello" && + + mv hello.c hello.orig && + sed -e "/}/i\\ + Qputs(\"goodbye\");" <hello.orig | tr Q "\\t" >hello.c && + GIT_AUTHOR_NAME="G" GIT_AUTHOR_EMAIL="G@test.git" \ + git commit -a -m "goodbye" && + + mv hello.c hello.orig && + echo "#include <stdio.h>" >hello.c && + cat hello.orig >>hello.c && + tr Q "\\t" >>hello.c <<-\EOF + void mail() + { + Qputs("mail"); + } + EOF + GIT_AUTHOR_NAME="H" GIT_AUTHOR_EMAIL="H@test.git" \ + git commit -a -m "mail" +' + +test_expect_success 'blame -L :literal' ' + check_count -f hello.c -L:main F 4 G 1 +' + +test_expect_success 'blame -L :regex' ' + check_count -f hello.c "-L:m[a-z][a-z]l" H 4 +' + +test_expect_success 'blame -L :nomatch' ' + test_must_fail $PROG -L:nomatch hello.c +' + test_expect_success 'blame -L bogus' ' test_must_fail $PROG -L file && test_must_fail $PROG -L1,+ file && |