Test interaction between diff --check and --exit-code
authorWincent Colaiuta <win@wincent.com>
Fri, 14 Dec 2007 11:23:44 +0000 (12:23 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sat, 15 Dec 2007 04:52:26 +0000 (20:52 -0800)
Make sure that it works as advertised in the man page.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4017-diff-retval.sh

index 68731908beaae88da6cc309fea91e84df533dfdc..dc0b7126cc996594b415058d83014a2c7d732895 100755 (executable)
@@ -76,4 +76,33 @@ test_expect_success 'git diff-index --cached HEAD' '
        }
 '
 
+test_expect_success '--check --exit-code returns 0 for no difference' '
+
+       git diff --check --exit-code
+
+'
+
+test_expect_success '--check --exit-code returns 1 for a clean difference' '
+
+       echo "good" > a &&
+       git diff --check --exit-code
+       test $? = 1
+
+'
+
+test_expect_success '--check --exit-code returns 3 for a dirty difference' '
+
+       echo "bad   " >> a &&
+       git diff --check --exit-code
+       test $? = 3
+
+'
+
+test_expect_success '--check with --no-pager returns 2 for dirty difference' '
+
+       git --no-pager diff --check
+       test $? = 2
+
+'
+
 test_done