diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-03-26 18:57:13 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-26 18:57:14 (GMT) |
commit | 30db51a3fec68bfa5a59b9b3886162f536e37320 (patch) | |
tree | 3eedb550880a7bb1fe0697aee575154492fd9d15 /t/t0020-crlf.sh | |
parent | 55a3b3c26eba7fae1fb9f7be37144b30b68fd8fe (diff) | |
parent | fc99da1fb7eebae0ccca7709b5fa3e55178d8434 (diff) | |
download | git-30db51a3fec68bfa5a59b9b3886162f536e37320.zip git-30db51a3fec68bfa5a59b9b3886162f536e37320.tar.gz git-30db51a3fec68bfa5a59b9b3886162f536e37320.tar.bz2 |
Merge branch 'jk/test-chain-lint'
People often forget to chain the commands in their test together
with &&, leaving a failure from an earlier command in the test go
unnoticed. The new GIT_TEST_CHAIN_LINT mechanism allows you to
catch such a mistake more easily.
* jk/test-chain-lint: (36 commits)
t9001: drop save_confirm helper
t0020: use test_* helpers instead of hand-rolled messages
t: simplify loop exit-code status variables
t: fix some trivial cases of ignored exit codes in loops
t7701: fix ignored exit code inside loop
t3305: fix ignored exit code inside loop
t0020: fix ignored exit code inside loops
perf-lib: fix ignored exit code inside loop
t6039: fix broken && chain
t9158, t9161: fix broken &&-chain in git-svn tests
t9104: fix test for following larger parents
t4104: drop hand-rolled error reporting
t0005: fix broken &&-chains
t7004: fix embedded single-quotes
t0050: appease --chain-lint
t9001: use test_when_finished
t4117: use modern test_* helpers
t6034: use modern test_* helpers
t1301: use modern test_* helpers
t0020: use modern test_* helpers
...
Diffstat (limited to 't/t0020-crlf.sh')
-rwxr-xr-x | t/t0020-crlf.sh | 224 |
1 files changed, 46 insertions, 178 deletions
diff --git a/t/t0020-crlf.sh b/t/t0020-crlf.sh index d2e51a8..f94120a 100755 --- a/t/t0020-crlf.sh +++ b/t/t0020-crlf.sh @@ -8,6 +8,13 @@ has_cr() { tr '\015' Q <"$1" | grep Q >/dev/null } +# add or remove CRs to disk file in-place +# usage: munge_cr <append|remove> <file> +munge_cr () { + "${1}_cr" <"$2" >tmp && + mv tmp "$2" +} + test_expect_success setup ' git config core.autocrlf false && @@ -28,9 +35,7 @@ test_expect_success setup ' for w in Some extra lines here; do echo $w; done >>one && git diff >patch.file && patched=$(git hash-object --stdin <one) && - git read-tree --reset -u HEAD && - - echo happy. + git read-tree --reset -u HEAD ' test_expect_success 'safecrlf: autocrlf=input, all CRLF' ' @@ -100,22 +105,11 @@ test_expect_success 'update with autocrlf=input' ' rm -f tmp one dir/two three && git read-tree --reset -u HEAD && git config core.autocrlf input && - - for f in one dir/two - do - append_cr <$f >tmp && mv -f tmp $f && - git update-index -- $f || { - echo Oops - false - break - } - done && - + munge_cr append one && + munge_cr append dir/two && + git update-index -- one dir/two && differs=$(git diff-index --cached HEAD) && - test -z "$differs" || { - echo Oops "$differs" - false - } + verbose test -z "$differs" ' @@ -124,22 +118,11 @@ test_expect_success 'update with autocrlf=true' ' rm -f tmp one dir/two three && git read-tree --reset -u HEAD && git config core.autocrlf true && - - for f in one dir/two - do - append_cr <$f >tmp && mv -f tmp $f && - git update-index -- $f || { - echo "Oops $f" - false - break - } - done && - + munge_cr append one && + munge_cr append dir/two && + git update-index -- one dir/two && differs=$(git diff-index --cached HEAD) && - test -z "$differs" || { - echo Oops "$differs" - false - } + verbose test -z "$differs" ' @@ -148,23 +131,13 @@ test_expect_success 'checkout with autocrlf=true' ' rm -f tmp one dir/two three && git config core.autocrlf true && git read-tree --reset -u HEAD && - - for f in one dir/two - do - remove_cr <"$f" >tmp && mv -f tmp $f && - git update-index -- $f || { - echo "Eh? $f" - false - break - } - done && + munge_cr remove one && + munge_cr remove dir/two && + git update-index -- one dir/two && test "$one" = $(git hash-object --stdin <one) && test "$two" = $(git hash-object --stdin <dir/two) && differs=$(git diff-index --cached HEAD) && - test -z "$differs" || { - echo Oops "$differs" - false - } + verbose test -z "$differs" ' test_expect_success 'checkout with autocrlf=input' ' @@ -172,25 +145,13 @@ test_expect_success 'checkout with autocrlf=input' ' rm -f tmp one dir/two three && git config core.autocrlf input && git read-tree --reset -u HEAD && - - for f in one dir/two - do - if has_cr "$f" - then - echo "Eh? $f" - false - break - else - git update-index -- $f - fi - done && + test_must_fail has_cr one && + test_must_fail has_cr two && + git update-index -- one dir/two && test "$one" = $(git hash-object --stdin <one) && test "$two" = $(git hash-object --stdin <dir/two) && differs=$(git diff-index --cached HEAD) && - test -z "$differs" || { - echo Oops "$differs" - false - } + verbose test -z "$differs" ' test_expect_success 'apply patch (autocrlf=input)' ' @@ -200,10 +161,7 @@ test_expect_success 'apply patch (autocrlf=input)' ' git read-tree --reset -u HEAD && git apply patch.file && - test "$patched" = "$(git hash-object --stdin <one)" || { - echo "Eh? apply without index" - false - } + verbose test "$patched" = "$(git hash-object --stdin <one)" ' test_expect_success 'apply patch --cached (autocrlf=input)' ' @@ -213,10 +171,7 @@ test_expect_success 'apply patch --cached (autocrlf=input)' ' git read-tree --reset -u HEAD && git apply --cached patch.file && - test "$patched" = $(git rev-parse :one) || { - echo "Eh? apply with --cached" - false - } + verbose test "$patched" = $(git rev-parse :one) ' test_expect_success 'apply patch --index (autocrlf=input)' ' @@ -226,11 +181,8 @@ test_expect_success 'apply patch --index (autocrlf=input)' ' git read-tree --reset -u HEAD && git apply --index patch.file && - test "$patched" = $(git rev-parse :one) && - test "$patched" = $(git hash-object --stdin <one) || { - echo "Eh? apply with --index" - false - } + verbose test "$patched" = $(git rev-parse :one) && + verbose test "$patched" = $(git hash-object --stdin <one) ' test_expect_success 'apply patch (autocrlf=true)' ' @@ -240,10 +192,7 @@ test_expect_success 'apply patch (autocrlf=true)' ' git read-tree --reset -u HEAD && git apply patch.file && - test "$patched" = "$(remove_cr <one | git hash-object --stdin)" || { - echo "Eh? apply without index" - false - } + verbose test "$patched" = "$(remove_cr <one | git hash-object --stdin)" ' test_expect_success 'apply patch --cached (autocrlf=true)' ' @@ -253,10 +202,7 @@ test_expect_success 'apply patch --cached (autocrlf=true)' ' git read-tree --reset -u HEAD && git apply --cached patch.file && - test "$patched" = $(git rev-parse :one) || { - echo "Eh? apply without index" - false - } + verbose test "$patched" = $(git rev-parse :one) ' test_expect_success 'apply patch --index (autocrlf=true)' ' @@ -266,11 +212,8 @@ test_expect_success 'apply patch --index (autocrlf=true)' ' git read-tree --reset -u HEAD && git apply --index patch.file && - test "$patched" = $(git rev-parse :one) && - test "$patched" = "$(remove_cr <one | git hash-object --stdin)" || { - echo "Eh? apply with --index" - false - } + verbose test "$patched" = $(git rev-parse :one) && + verbose test "$patched" = "$(remove_cr <one | git hash-object --stdin)" ' test_expect_success '.gitattributes says two is binary' ' @@ -280,29 +223,9 @@ test_expect_success '.gitattributes says two is binary' ' git config core.autocrlf true && git read-tree --reset -u HEAD && - if has_cr dir/two - then - echo "Huh?" - false - else - : happy - fi && - - if has_cr one - then - : happy - else - echo "Huh?" - false - fi && - - if has_cr three - then - echo "Huh?" - false - else - : happy - fi + test_must_fail has_cr dir/two && + verbose has_cr one && + test_must_fail has_cr three ' test_expect_success '.gitattributes says two is input' ' @@ -311,13 +234,7 @@ test_expect_success '.gitattributes says two is input' ' echo "two crlf=input" >.gitattributes && git read-tree --reset -u HEAD && - if has_cr dir/two - then - echo "Huh?" - false - else - : happy - fi + test_must_fail has_cr dir/two ' test_expect_success '.gitattributes says two and three are text' ' @@ -326,21 +243,8 @@ test_expect_success '.gitattributes says two and three are text' ' echo "t* crlf" >.gitattributes && git read-tree --reset -u HEAD && - if has_cr dir/two - then - : happy - else - echo "Huh?" - false - fi && - - if has_cr three - then - : happy - else - echo "Huh?" - false - fi + verbose has_cr dir/two && + verbose has_cr three ' test_expect_success 'in-tree .gitattributes (1)' ' @@ -352,17 +256,8 @@ test_expect_success 'in-tree .gitattributes (1)' ' rm -rf tmp one dir .gitattributes patch.file three && git read-tree --reset -u HEAD && - if has_cr one - then - echo "Eh? one should not have CRLF" - false - else - : happy - fi && - has_cr three || { - echo "Eh? three should still have CRLF" - false - } + test_must_fail has_cr one && + verbose has_cr three ' test_expect_success 'in-tree .gitattributes (2)' ' @@ -371,17 +266,8 @@ test_expect_success 'in-tree .gitattributes (2)' ' git read-tree --reset HEAD && git checkout-index -f -q -u -a && - if has_cr one - then - echo "Eh? one should not have CRLF" - false - else - : happy - fi && - has_cr three || { - echo "Eh? three should still have CRLF" - false - } + test_must_fail has_cr one && + verbose has_cr three ' test_expect_success 'in-tree .gitattributes (3)' ' @@ -391,17 +277,8 @@ test_expect_success 'in-tree .gitattributes (3)' ' git checkout-index -u .gitattributes && git checkout-index -u one dir/two three && - if has_cr one - then - echo "Eh? one should not have CRLF" - false - else - : happy - fi && - has_cr three || { - echo "Eh? three should still have CRLF" - false - } + test_must_fail has_cr one && + verbose has_cr three ' test_expect_success 'in-tree .gitattributes (4)' ' @@ -411,17 +288,8 @@ test_expect_success 'in-tree .gitattributes (4)' ' git checkout-index -u one dir/two three && git checkout-index -u .gitattributes && - if has_cr one - then - echo "Eh? one should not have CRLF" - false - else - : happy - fi && - has_cr three || { - echo "Eh? three should still have CRLF" - false - } + test_must_fail has_cr one && + verbose has_cr three ' test_expect_success 'checkout with existing .gitattributes' ' |