You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
2.6 KiB
123 lines
2.6 KiB
#!/bin/sh |
|
|
|
test_description='diff whitespace error detection' |
|
|
|
. ./test-lib.sh |
|
|
|
test_expect_success setup ' |
|
|
|
git config diff.color.whitespace "blue reverse" && |
|
>F && |
|
git add F && |
|
echo " Eight SP indent" >>F && |
|
echo " HT and SP indent" >>F && |
|
echo "With trailing SP " >>F && |
|
echo "No problem" >>F |
|
|
|
' |
|
|
|
blue_grep='7;34m' ;# ESC [ 7 ; 3 4 m |
|
|
|
test_expect_success default ' |
|
|
|
git diff --color >output |
|
grep "$blue_grep" output >error |
|
grep -v "$blue_grep" output >normal |
|
|
|
grep Eight normal >/dev/null && |
|
grep HT error >/dev/null && |
|
grep With error >/dev/null && |
|
grep No normal >/dev/null |
|
|
|
' |
|
|
|
test_expect_success 'without -trail' ' |
|
|
|
git config core.whitespace -trail |
|
git diff --color >output |
|
grep "$blue_grep" output >error |
|
grep -v "$blue_grep" output >normal |
|
|
|
grep Eight normal >/dev/null && |
|
grep HT error >/dev/null && |
|
grep With normal >/dev/null && |
|
grep No normal >/dev/null |
|
|
|
' |
|
|
|
test_expect_success 'without -trail (attribute)' ' |
|
|
|
git config --unset core.whitespace |
|
echo "F whitespace=-trail" >.gitattributes |
|
git diff --color >output |
|
grep "$blue_grep" output >error |
|
grep -v "$blue_grep" output >normal |
|
|
|
grep Eight normal >/dev/null && |
|
grep HT error >/dev/null && |
|
grep With normal >/dev/null && |
|
grep No normal >/dev/null |
|
|
|
' |
|
|
|
test_expect_success 'without -space' ' |
|
|
|
rm -f .gitattributes |
|
git config core.whitespace -space |
|
git diff --color >output |
|
grep "$blue_grep" output >error |
|
grep -v "$blue_grep" output >normal |
|
|
|
grep Eight normal >/dev/null && |
|
grep HT normal >/dev/null && |
|
grep With error >/dev/null && |
|
grep No normal >/dev/null |
|
|
|
' |
|
|
|
test_expect_success 'without -space (attribute)' ' |
|
|
|
git config --unset core.whitespace |
|
echo "F whitespace=-space" >.gitattributes |
|
git diff --color >output |
|
grep "$blue_grep" output >error |
|
grep -v "$blue_grep" output >normal |
|
|
|
grep Eight normal >/dev/null && |
|
grep HT normal >/dev/null && |
|
grep With error >/dev/null && |
|
grep No normal >/dev/null |
|
|
|
' |
|
|
|
test_expect_success 'with indent-non-tab only' ' |
|
|
|
rm -f .gitattributes |
|
git config core.whitespace indent,-trailing,-space |
|
git diff --color >output |
|
grep "$blue_grep" output >error |
|
grep -v "$blue_grep" output >normal |
|
|
|
grep Eight error >/dev/null && |
|
grep HT normal >/dev/null && |
|
grep With normal >/dev/null && |
|
grep No normal >/dev/null |
|
|
|
' |
|
|
|
test_expect_success 'with indent-non-tab only (attribute)' ' |
|
|
|
git config --unset core.whitespace |
|
echo "F whitespace=indent,-trailing,-space" >.gitattributes |
|
git diff --color >output |
|
grep "$blue_grep" output >error |
|
grep -v "$blue_grep" output >normal |
|
|
|
grep Eight error >/dev/null && |
|
grep HT normal >/dev/null && |
|
grep With normal >/dev/null && |
|
grep No normal >/dev/null |
|
|
|
' |
|
|
|
test_done
|
|
|