Merge branch 'sb/test-bitmap-free-at-end'
[gitweb.git] / t / t4022-diff-rewrite.sh
index c00a94b9ba4498e72a31856aac9cf653bbce8ba3..cb51d9f9d47d61c5b73de78edeeedcc7652f262d 100755 (executable)
@@ -20,10 +20,7 @@ test_expect_success setup '
 test_expect_success 'detect rewrite' '
 
        actual=$(git diff-files -B --summary test) &&
-       expr "$actual" : " rewrite test ([0-9]*%)$" || {
-               echo "Eh? <<$actual>>"
-               false
-       }
+       verbose expr "$actual" : " rewrite test ([0-9]*%)$"
 
 '
 
@@ -66,5 +63,35 @@ test_expect_success 'suppress deletion diff with -B -D' '
        grep -v "Linus Torvalds" actual
 '
 
+test_expect_success 'prepare a file that ends with an incomplete line' '
+       test_seq 1 99 >seq &&
+       printf 100 >>seq &&
+       git add seq &&
+       git commit seq -m seq
+'
+
+test_expect_success 'rewrite the middle 90% of sequence file and terminate with newline' '
+       test_seq 1 5 >seq &&
+       test_seq 9331 9420 >>seq &&
+       test_seq 96 100 >>seq
+'
+
+test_expect_success 'confirm that sequence file is considered a rewrite' '
+       git diff -B seq >res &&
+       grep "dissimilarity index" res
+'
+
+test_expect_success 'no newline at eof is on its own line without -B' '
+       git diff seq >res &&
+       grep "^\\\\ " res &&
+       ! grep "^..*\\\\ " res
+'
+
+test_expect_success 'no newline at eof is on its own line with -B' '
+       git diff -B seq >res &&
+       grep "^\\\\ " res &&
+       ! grep "^..*\\\\ " res
+'
+
 test_done