From f817546652812ad5f20a8ab4a4a7290a9759ac4e Mon Sep 17 00:00:00 2001 From: Wincent Colaiuta Date: Thu, 13 Dec 2007 14:32:31 +0100 Subject: [PATCH] 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 Signed-off-by: Junio C Hamano --- t/t4015-diff-whitespace.sh | 90 +++++++++++++++++++++++++++++++++++----------- 1 file 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 ' -- 2.11.4.GIT