t4006: resurrect commented-out tests
authorJeff King <peff@peff.net>
Thu, 24 Jan 2019 12:27:29 +0000 (07:27 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 24 Jan 2019 19:58:38 +0000 (11:58 -0800)
This set of tests was added by 4434e6ba6c (tests: check --[short]stat
output after chmod, 2012-05-01), and is primarily about the handling of
binary versus text files.

Later, 74faaa16f0 (Fix "git diff --stat" for interesting - but empty -
file changes, 2012-10-17) changed the stat output so that the empty text
file is mentioned rather than omitted. That commit just comments out
these tests. There's no discussion in the commit message, but the
original email[1] says:

  NOTE! This does break two of our tests, so we clearly did this on
  purpose, or at least tested for it. I just uncommented the subtests
  that this makes irrelevant, and changed the output of another one.

I don't think they're irrelevant, though. We should be testing this
"mode change only" case and making sure that it has the post-74faaa16f0
behavior. So this commit brings back those tests, with the current
expected output.

[1] https://public-inbox.org/git/CA+55aFz88GPJcfMSqiyY+u0Cdm48bEyrsTGxHVJbGsYsDg=Q5w@mail.gmail.com/

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4006-diff-mode.sh

index a8e01ec..03489af 100755 (executable)
@@ -32,28 +32,37 @@ test_expect_success 'prepare binary file' '
        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_i18ncmp expect actual
-# '
-#
-# test_expect_success '--shortstat output after text chmod' '
-#      git diff HEAD --shortstat >actual &&
-#      test_i18ncmp 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_i18ncmp expect actual
-# '
-#
-# test_expect_success '--shortstat output after binary chmod' '
-#      git diff HEAD --shortstat >actual &&
-#      test_i18ncmp expect actual
-# '
+test_expect_success '--stat output after text chmod' '
+       test_chmod -x rezrov &&
+       cat >expect <<-\EOF &&
+        rezrov | 0
+        1 file changed, 0 insertions(+), 0 deletions(-)
+       EOF
+       git diff HEAD --stat >actual &&
+       test_i18ncmp expect actual
+'
+
+test_expect_success '--shortstat output after text chmod' '
+       tail -n 1 <expect >expect.short &&
+       git diff HEAD --shortstat >actual &&
+       test_i18ncmp expect.short actual
+'
+
+test_expect_success '--stat output after binary chmod' '
+       test_chmod +x binbin &&
+       cat >expect <<-EOF &&
+        binbin | Bin
+        rezrov |   0
+        2 files changed, 0 insertions(+), 0 deletions(-)
+       EOF
+       git diff HEAD --stat >actual &&
+       test_i18ncmp expect actual
+'
+
+test_expect_success '--shortstat output after binary chmod' '
+       tail -n 1 <expect >expect.short &&
+       git diff HEAD --shortstat >actual &&
+       test_i18ncmp expect.short actual
+'
 
 test_done