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 <sunsh...@sunshineco.com>
---
 t/annotate-tests.sh | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/t/annotate-tests.sh b/t/annotate-tests.sh
index 02fbbf1..f67332c 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
 '
-- 
1.8.3.4.1120.gc240c48

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to