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>
Eric Sunshine committed
Jul 31, 2013 at 04:15 UTC
a8fa8eca3f38ab89ad116575d0a5c47cdd03a7e9
1 file changed
+72
t/annotate-tests.sh
+72
@@ -297,6 +297,78 @@ test_expect_success 'blame -L :nomatch' '
297
test_must_fail $PROG -L:nomatch hello.c
298
'
299
300
+test_expect_success 'setup incremental' '
301
+ (
302
+ GIT_AUTHOR_NAME=I &&
303
+ export GIT_AUTHOR_NAME &&
304
+ GIT_AUTHOR_EMAIL=I@test.git &&
305
+ export GIT_AUTHOR_EMAIL &&
306
+ >incremental &&
307
+ git add incremental &&
308
+ git commit -m "step 0" &&
309
+ printf "partial" >>incremental &&
310
+ git commit -a -m "step 0.5" &&
311
+ echo >>incremental &&
312
+ git commit -a -m "step 1"
313
+ )
314
+'
315
+
316
+test_expect_success 'blame empty' '
317
+ check_count -h HEAD^^ -f incremental
318
+'
319
+
320
+test_expect_success 'blame -L 0 empty (undocumented)' '
321
+ check_count -h HEAD^^ -f incremental -L0
322
+'
323
+
324
+test_expect_failure 'blame -L 1 empty' '
325
+ test_must_fail $PROG -L1 incremental HEAD^^
326
+'
327
+
328
+test_expect_success 'blame -L 2 empty' '
329
+ test_must_fail $PROG -L2 incremental HEAD^^
330
+'
331
+
332
+test_expect_success 'blame half' '
333
+ check_count -h HEAD^ -f incremental I 1
334
+'
335
+
336
+test_expect_success 'blame -L 0 half (undocumented)' '
337
+ check_count -h HEAD^ -f incremental -L0 I 1
338
+'
339
+
340
+test_expect_success 'blame -L 1 half' '
341
+ check_count -h HEAD^ -f incremental -L1 I 1
342
+'
343
+
344
+test_expect_failure 'blame -L 2 half' '
345
+ test_must_fail $PROG -L2 incremental HEAD^
346
+'
347
+
348
+test_expect_success 'blame -L 3 half' '
349
+ test_must_fail $PROG -L3 incremental HEAD^
350
+'
351
+
352
+test_expect_success 'blame full' '
353
+ check_count -f incremental I 1
354
+'
355
+
356
+test_expect_success 'blame -L 0 full (undocumented)' '
357
+ check_count -f incremental -L0 I 1
358
+'
359
+
360
+test_expect_success 'blame -L 1 full' '
361
+ check_count -f incremental -L1 I 1
362
+'
363
+
364
+test_expect_failure 'blame -L 2 full' '
365
+ test_must_fail $PROG -L2 incremental
366
+'
367
+
368
+test_expect_success 'blame -L 3 full' '
369
+ test_must_fail $PROG -L3 incremental
370
+'
371
+
372
test_expect_success 'blame -L' '
373
test_must_fail $PROG -L file
374
'