tests: check --[short]stat output after chmod
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 1 May 2012 17:10:13 +0000 (19:10 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 1 May 2012 18:02:12 +0000 (11:02 -0700)
Add a test to check 'diff --stat' output with a text file after chmod,
and the same for a binary file. This demonstrates that text and binary
files are treated differently, which can be misleading.

While at it, add tests to check --shortstat output, too.

Reported-by: Martin Mareš <mj@ucw.cz>
Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4006-diff-mode.sh

index b85f622e7c4c934eeee826ac425be67376e27bde..392dfeff57d0b1030e14c78bac105ac0f7183eb8 100755 (executable)
@@ -25,4 +25,41 @@ test_expect_success 'chmod' '
        test_cmp expected check
 '
 
+test_expect_success 'prepare binary file' '
+       git commit -m rezrov &&
+       dd if=/dev/zero of=binbin bs=1024 count=1 &&
+       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 &&
+       cat >expect <<-EOF &&
+        binbin |  Bin 1024 -> 1024 bytes
+        1 file changed, 0 insertions(+), 0 deletions(-)
+       EOF
+       git diff HEAD --stat >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success '--shortstat output after binary chmod' '
+       cat >expect <<-EOF &&
+        1 file changed, 0 insertions(+), 0 deletions(-)
+       EOF
+       git diff HEAD --shortstat >actual &&
+       test_cmp expect actual
+'
+
 test_done