Re: [PATCH v2 2/8] auto-crlf tests: check "git checkout" exit code
- From
René Scharfe <l.s.r@web.de>
- Date
- Dec 2, 2022, 01:02 UTC
- Message-ID
- <02ead668-5b5d-877c-1e40-3656fd85945f@web.de>
- In-Reply-To
- <patch-v2-2.8-345a667d5bb-20221202T000227Z-avarab@gmail.com>
Am 02.12.2022 um 01:06 schrieb Ævar Arnfjörð Bjarmason:
Show 37 quoted lines
> Don't hide the exit code from the "git checkout" we run to checkout
> our attributes file.
>
> This fixes cases where we'd have e.g. missed memory leaks under
> SANITIZE=leak, this code doesn't leak (the relevant "git checkout"
> leak has been fixed), but in a past version of git we'd continue past
> this failure under SANITIZE=leak when these invocations had errored
> out, even under "--immediate".
>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
> t/t0027-auto-crlf.sh | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
> index a94ac1eae37..574344a99db 100755
> --- a/t/t0027-auto-crlf.sh
> +++ b/t/t0027-auto-crlf.sh
> @@ -294,11 +294,17 @@ checkout_files () {
> pfx=eol_${ceol}_crlf_${crlf}_attr_${attr}_ &&
> for f in LF CRLF LF_mix_CR CRLF_mix_LF LF_nul
> do
> - rm crlf_false_attr__$f.txt &&
> - if test -z "$ceol"; then
> - git checkout -- crlf_false_attr__$f.txt
> + if test -z "$ceol"
> + then
> + test_expect_success "setup $f checkout" '
> + rm crlf_false_attr__$f.txt &&
> + git checkout -- crlf_false_attr__$f.txt
> + '
> else
> - git -c core.eol=$ceol checkout -- crlf_false_attr__$f.txt
> + test_expect_success "setup $f checkout with core.eol=$ceol" '
> + rm crlf_false_attr__$f.txt &&
> + git -c core.eol=$ceol checkout -- crlf_false_attr__$f.txt
> + 'That adds five test_expect_success calls. Wouldn't one suffice, for the whole for loop, and a "|| return 1"?
One line above the context there's a "git config" call that should also be covered, right?
Side note: The checkout commands only differ in their -c parameter. They could be unified like this, which might simplify handling their return code:
git ${ceol:+-c core.eol=$ceol} checkout -- crlf_false_attr__$f.txt> fi > done >