t / t4006-diff-mode.shon commit Merge branch 'sg/travis-osx-brew-breakage-workaround' (d219b7f)
   1#!/bin/sh
   2#
   3# Copyright (c) 2005 Junio C Hamano
   4#
   5
   6test_description='Test mode change diffs.
   7
   8'
   9. ./test-lib.sh
  10
  11sed_script='s/\(:100644 100755\) \('"$OID_REGEX"'\) \2 /\1 X X /'
  12
  13test_expect_success 'setup' '
  14        echo frotz >rezrov &&
  15        git update-index --add rezrov &&
  16        tree=$(git write-tree) &&
  17        echo $tree
  18'
  19
  20test_expect_success 'chmod' '
  21        test_chmod +x rezrov &&
  22        git diff-index $tree >current &&
  23        sed -e "$sed_script" <current >check &&
  24        echo ":100644 100755 X X M      rezrov" >expected &&
  25        test_cmp expected check
  26'
  27
  28test_expect_success 'prepare binary file' '
  29        git commit -m rezrov &&
  30        printf "\00\01\02\03\04\05\06" >binbin &&
  31        git add binbin &&
  32        git commit -m binbin
  33'
  34
  35test_expect_success '--stat output after text chmod' '
  36        test_chmod -x rezrov &&
  37        cat >expect <<-\EOF &&
  38         rezrov | 0
  39         1 file changed, 0 insertions(+), 0 deletions(-)
  40        EOF
  41        git diff HEAD --stat >actual &&
  42        test_i18ncmp expect actual
  43'
  44
  45test_expect_success '--shortstat output after text chmod' '
  46        tail -n 1 <expect >expect.short &&
  47        git diff HEAD --shortstat >actual &&
  48        test_i18ncmp expect.short actual
  49'
  50
  51test_expect_success '--stat output after binary chmod' '
  52        test_chmod +x binbin &&
  53        cat >expect <<-EOF &&
  54         binbin | Bin
  55         rezrov |   0
  56         2 files changed, 0 insertions(+), 0 deletions(-)
  57        EOF
  58        git diff HEAD --stat >actual &&
  59        test_i18ncmp expect actual
  60'
  61
  62test_expect_success '--shortstat output after binary chmod' '
  63        tail -n 1 <expect >expect.short &&
  64        git diff HEAD --shortstat >actual &&
  65        test_i18ncmp expect.short actual
  66'
  67
  68test_done