git-blame inherited "-L :funcname" support when "-L :funcname:file" was implemented for git-log. Add tests. Signed-off-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> --- t/annotate-tests.sh | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/t/annotate-tests.sh b/t/annotate-tests.sh index b6a7478..0bfee00 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@xxxxxxxx" \ + 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@xxxxxxxx" \ + 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@xxxxxxxx" \ + 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 && -- 1.8.3.3.1016.g4f0baba -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html