summaryrefslogtreecommitdiff
path: root/t/t4015-diff-whitespace.sh
diff options
context:
space:
mode:
authorLibravatar Wincent Colaiuta <gitster@pobox.com>2007-12-13 14:32:31 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2007-12-13 23:53:20 -0800
commitf817546652812ad5f20a8ab4a4a7290a9759ac4e (patch)
tree3f3048fdf8668b7404f93be8861fa13488d82d83 /t/t4015-diff-whitespace.sh
parentMake "diff --check" output match "git apply" (diff)
downloadtgif-f817546652812ad5f20a8ab4a4a7290a9759ac4e.tar.xz
Add tests for "git diff --check" with core.whitespace options
Make sure that "git diff --check" does the right thing when the core.whitespace options are set. While we are at it, correct many uses of test_expect_failure that ran sequence of commands. Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4015-diff-whitespace.sh')
-rwxr-xr-xt/t4015-diff-whitespace.sh90
1 files changed, 70 insertions, 20 deletions
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index 595cd60623..05ef78b2c0 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -133,18 +133,18 @@ test_expect_success 'check with no whitespace errors' '
'
-test_expect_failure 'check with trailing whitespace' '
+test_expect_success 'check with trailing whitespace' '
echo "foo(); " > x &&
- git diff --check
+ ! git diff --check
'
-test_expect_failure 'check with space before tab in indent' '
+test_expect_success 'check with space before tab in indent' '
# indent has space followed by hard tab
echo " foo();" > x &&
- git diff --check
+ ! git diff --check
'
@@ -169,20 +169,20 @@ test_expect_success 'check staged with no whitespace errors' '
'
-test_expect_failure 'check staged with trailing whitespace' '
+test_expect_success 'check staged with trailing whitespace' '
echo "foo(); " > x &&
git add x &&
- git diff --cached --check
+ ! git diff --cached --check
'
-test_expect_failure 'check staged with space before tab in indent' '
+test_expect_success 'check staged with space before tab in indent' '
# indent has space followed by hard tab
echo " foo();" > x &&
git add x &&
- git diff --cached --check
+ ! git diff --cached --check
'
@@ -194,20 +194,20 @@ test_expect_success 'check with no whitespace errors (diff-index)' '
'
-test_expect_failure 'check with trailing whitespace (diff-index)' '
+test_expect_success 'check with trailing whitespace (diff-index)' '
echo "foo(); " > x &&
git add x &&
- git diff-index --check HEAD
+ ! git diff-index --check HEAD
'
-test_expect_failure 'check with space before tab in indent (diff-index)' '
+test_expect_success 'check with space before tab in indent (diff-index)' '
# indent has space followed by hard tab
echo " foo();" > x &&
git add x &&
- git diff-index --check HEAD
+ ! git diff-index --check HEAD
'
@@ -219,20 +219,20 @@ test_expect_success 'check staged with no whitespace errors (diff-index)' '
'
-test_expect_failure 'check staged with trailing whitespace (diff-index)' '
+test_expect_success 'check staged with trailing whitespace (diff-index)' '
echo "foo(); " > x &&
git add x &&
- git diff-index --cached --check HEAD
+ ! git diff-index --cached --check HEAD
'
-test_expect_failure 'check staged with space before tab in indent (diff-index)' '
+test_expect_success 'check staged with space before tab in indent (diff-index)' '
# indent has space followed by hard tab
echo " foo();" > x &&
git add x &&
- git diff-index --cached --check HEAD
+ ! git diff-index --cached --check HEAD
'
@@ -244,20 +244,70 @@ test_expect_success 'check with no whitespace errors (diff-tree)' '
'
-test_expect_failure 'check with trailing whitespace (diff-tree)' '
+test_expect_success 'check with trailing whitespace (diff-tree)' '
echo "foo(); " > x &&
git commit -m "another commit" x &&
- git diff-tree --check HEAD^ HEAD
+ ! git diff-tree --check HEAD^ HEAD
'
-test_expect_failure 'check with space before tab in indent (diff-tree)' '
+test_expect_success 'check with space before tab in indent (diff-tree)' '
# indent has space followed by hard tab
echo " foo();" > x &&
git commit -m "yet another" x &&
- git diff-tree --check HEAD^ HEAD
+ ! git diff-tree --check HEAD^ HEAD
+
+'
+
+test_expect_success 'check trailing whitespace (trailing-space: off)' '
+
+ git config core.whitespace "-trailing-space" &&
+ echo "foo (); " > x &&
+ git diff --check
+
+'
+
+test_expect_success 'check trailing whitespace (trailing-space: on)' '
+
+ git config core.whitespace "trailing-space" &&
+ echo "foo (); " > x &&
+ ! git diff --check
+
+'
+
+test_expect_success 'check space before tab in indent (space-before-tab: off)' '
+
+ # indent contains space followed by HT
+ git config core.whitespace "-space-before-tab" &&
+ echo " foo ();" > x &&
+ git diff --check
+
+'
+
+test_expect_success 'check space before tab in indent (space-before-tab: on)' '
+
+ # indent contains space followed by HT
+ git config core.whitespace "space-before-tab" &&
+ echo " foo (); " > x &&
+ ! git diff --check
+
+'
+
+test_expect_success 'check spaces as indentation (indent-with-non-tab: off)' '
+
+ git config core.whitespace "-indent-with-non-tab"
+ echo " foo ();" > x &&
+ git diff --check
+
+'
+
+test_expect_success 'check spaces as indentation (indent-with-non-tab: on)' '
+
+ git config core.whitespace "indent-with-non-tab" &&
+ echo " foo ();" > x &&
+ ! git diff --check
'