git on Mac OS and precomposed unicode
[gitweb.git] / t / t4006-diff-mode.sh
index ff8c2f7532aa6fd748dbbdc0322384576f3a35ed..7a3e1f9a24e4be3759c29acc632fc461ede2b74b 100755 (executable)
@@ -8,23 +8,52 @@ test_description='Test mode change diffs.
 '
 . ./test-lib.sh
 
-test_expect_success \
-    'setup' \
-    'echo frotz >rezrov &&
-     git update-index --add rezrov &&
-     tree=`git write-tree` &&
-     echo $tree'
-
-test_expect_success \
-    'chmod' \
-    'test_chmod +x rezrov &&
-     git diff-index $tree >current'
-
-sed -e 's/\(:100644 100755\) \('"$_x40"'\) \2 /\1 X X /' <current >check
-echo ":100644 100755 X X M     rezrov" >expected
-
-test_expect_success \
-    'verify' \
-    'test_cmp expected check'
+sed_script='s/\(:100644 100755\) \('"$_x40"'\) \2 /\1 X X /'
+
+test_expect_success 'setup' '
+       echo frotz >rezrov &&
+       git update-index --add rezrov &&
+       tree=`git write-tree` &&
+       echo $tree
+'
+
+test_expect_success 'chmod' '
+       test_chmod +x rezrov &&
+       git diff-index $tree >current &&
+       sed -e "$sed_script" <current >check &&
+       echo ":100644 100755 X X M      rezrov" >expected &&
+       test_cmp expected check
+'
+
+test_expect_success 'prepare binary file' '
+       git commit -m rezrov &&
+       printf "\00\01\02\03\04\05\06" >binbin &&
+       git add binbin &&
+       git commit -m binbin
+'
+
+test_expect_success '--stat output after text chmod' '
+       test_chmod -x rezrov &&
+       echo " 0 files changed" >expect &&
+       git diff HEAD --stat >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success '--shortstat output after text chmod' '
+       git diff HEAD --shortstat >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success '--stat output after binary chmod' '
+       test_chmod +x binbin &&
+       echo " 0 files changed" >expect &&
+       git diff HEAD --stat >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success '--shortstat output after binary chmod' '
+       git diff HEAD --shortstat >actual &&
+       test_cmp expect actual
+'
 
 test_done