diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2013-07-31 04:15:37 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-08-05 11:54:31 -0700 |
commit | a8fa8eca3f38ab89ad116575d0a5c47cdd03a7e9 (patch) | |
tree | c5a97c394626139fa9e2852a3439012aeb785609 /t/annotate-tests.sh | |
parent | 580b4f3acf076f5f3346206d3c54912ffc663d86 (diff) | |
download | git-a8fa8eca3f38ab89ad116575d0a5c47cdd03a7e9.tar.gz |
t8001/t8002: blame: add empty file & partial-line tests
Add boundary case tests, with and without -L, for empty file; file with
one partial line; file with one full line.
The empty file test without -L is of particular interest. Historically,
this case has been supported (empty blame output) and this test protects
against regression by a subsequent patch fixing an off-by-one bug which
incorrectly accepts -LX where X is one past end-of-file.
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 | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/t/annotate-tests.sh b/t/annotate-tests.sh index 47b50074f2..22db31e580 100644 --- a/t/annotate-tests.sh +++ b/t/annotate-tests.sh @@ -297,6 +297,78 @@ test_expect_success 'blame -L :nomatch' ' test_must_fail $PROG -L:nomatch hello.c ' +test_expect_success 'setup incremental' ' + ( + GIT_AUTHOR_NAME=I && + export GIT_AUTHOR_NAME && + GIT_AUTHOR_EMAIL=I@test.git && + export GIT_AUTHOR_EMAIL && + >incremental && + git add incremental && + git commit -m "step 0" && + printf "partial" >>incremental && + git commit -a -m "step 0.5" && + echo >>incremental && + git commit -a -m "step 1" + ) +' + +test_expect_success 'blame empty' ' + check_count -h HEAD^^ -f incremental +' + +test_expect_success 'blame -L 0 empty (undocumented)' ' + check_count -h HEAD^^ -f incremental -L0 +' + +test_expect_failure 'blame -L 1 empty' ' + test_must_fail $PROG -L1 incremental HEAD^^ +' + +test_expect_success 'blame -L 2 empty' ' + test_must_fail $PROG -L2 incremental HEAD^^ +' + +test_expect_success 'blame half' ' + check_count -h HEAD^ -f incremental I 1 +' + +test_expect_success 'blame -L 0 half (undocumented)' ' + check_count -h HEAD^ -f incremental -L0 I 1 +' + +test_expect_success 'blame -L 1 half' ' + check_count -h HEAD^ -f incremental -L1 I 1 +' + +test_expect_failure 'blame -L 2 half' ' + test_must_fail $PROG -L2 incremental HEAD^ +' + +test_expect_success 'blame -L 3 half' ' + test_must_fail $PROG -L3 incremental HEAD^ +' + +test_expect_success 'blame full' ' + check_count -f incremental I 1 +' + +test_expect_success 'blame -L 0 full (undocumented)' ' + check_count -f incremental -L0 I 1 +' + +test_expect_success 'blame -L 1 full' ' + check_count -f incremental -L1 I 1 +' + +test_expect_failure 'blame -L 2 full' ' + test_must_fail $PROG -L2 incremental +' + +test_expect_success 'blame -L 3 full' ' + test_must_fail $PROG -L3 incremental +' + test_expect_success 'blame -L' ' test_must_fail $PROG -L file ' |