t / t4031-diff-rewrite-binary.shon commit diff: fix handling of binary rewrite diffs (0c01857)
   1#!/bin/sh
   2
   3test_description='rewrite diff on binary file'
   4
   5. ./test-lib.sh
   6
   7# We must be large enough to meet the MINIMUM_BREAK_SIZE
   8# requirement.
   9make_file() {
  10        for i in 1 2 3 4 5 6 7 8 9 10
  11        do
  12                for j in 1 2 3 4 5 6 7 8 9
  13                do
  14                        for k in 1 2 3 4 5
  15                        do
  16                                printf "$1\n"
  17                        done
  18                done
  19        done >file
  20}
  21
  22test_expect_success 'create binary file with changes' '
  23        make_file "\\0" &&
  24        git add file &&
  25        make_file "\\01"
  26'
  27
  28test_expect_success 'vanilla diff is binary' '
  29        git diff >diff &&
  30        grep "Binary files a/file and b/file differ" diff
  31'
  32
  33test_expect_success 'rewrite diff is binary' '
  34        git diff -B >diff &&
  35        grep "dissimilarity index" diff &&
  36        grep "Binary files a/file and b/file differ" diff
  37'
  38
  39test_expect_success 'rewrite diff can show binary patch' '
  40        git diff -B --binary >diff &&
  41        grep "dissimilarity index" diff &&
  42        grep "GIT binary patch" diff
  43'
  44
  45test_done