From: Junio C Hamano <gitster@pobox.com>
To: "René Scharfe" <l.s.r@web.de>
Cc: "Git List" <git@vger.kernel.org>,
"Matheus Tavares" <matheus.bernardino@usp.br>,
"SZEDER Gábor" <szeder.dev@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: Re: [PATCH v3] parallel-checkout: avoid dash local bug in tests
Date: Sun, 06 Jun 2021 10:41:41 +0900 [thread overview]
Message-ID: <xmqq5yyr22i2.fsf@gitster.g> (raw)
In-Reply-To: <3b71b62d-b299-aac8-f796-ee7a5d7f87b0@web.de> ("René Scharfe"'s message of "Sun, 6 Jun 2021 03:01:57 +0200")
René Scharfe <l.s.r@web.de> writes:
> Dash bug https://bugs.launchpad.net/ubuntu/+source/dash/+bug/139097
> lets the shell erroneously perform field splitting on the expansion of a
> command substitution during declaration of a local variable. It causes
> the parallel-checkout tests to fail e.g. when running them with
> /bin/dash on MacOS 11.4, where they error out like this:
>
> ./t2080-parallel-checkout-basics.sh: 33: local: 0: bad variable name
>
> That's because the output of wc -l contains leading spaces and the
> returned number of lines is treated as another variable to declare, i.e.
> as in "local workers= 0".
>
> Work around it by enclosing the command substitution in quotes.
>
> Helped-by: Matheus Tavares Bernardino <matheus.bernardino@usp.br>
> Helped-by: SZEDER Gábor <szeder.dev@gmail.com>
> Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
> Changes since v2:
> - Use minimal fix.
> - New commit message.
Thanks. As I said, I do not necessarily think this is conceptually
"minimal", but we use workers only once and without surrounding dq
so it is easy to see that this also is correct.
Will queue.
>
> t/lib-parallel-checkout.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/t/lib-parallel-checkout.sh b/t/lib-parallel-checkout.sh
> index 21f5759732..83b279a846 100644
> --- a/t/lib-parallel-checkout.sh
> +++ b/t/lib-parallel-checkout.sh
> @@ -27,7 +27,7 @@ test_checkout_workers () {
> rm -f "$trace_file" &&
> GIT_TRACE2="$(pwd)/$trace_file" "$@" 2>&8 &&
>
> - local workers=$(grep "child_start\[..*\] git checkout--worker" "$trace_file" | wc -l) &&
> + local workers="$(grep "child_start\[..*\] git checkout--worker" "$trace_file" | wc -l)" &&
> test $workers -eq $expected_workers &&
> rm "$trace_file"
> } 8>&2 2>&4
> --
> 2.31.1
prev parent reply other threads:[~2021-06-06 1:41 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-05 12:27 [PATCH] parallel-checkout: use grep -c to count workers in tests René Scharfe
2021-06-05 14:31 ` Matheus Tavares Bernardino
2021-06-05 15:20 ` René Scharfe
2021-06-05 15:30 ` René Scharfe
2021-06-05 18:11 ` [PATCH v2] parallel-checkout: avoid dash local bug " René Scharfe
2021-06-05 19:09 ` SZEDER Gábor
2021-06-06 1:01 ` René Scharfe
2021-06-05 19:56 ` Ævar Arnfjörð Bjarmason
2021-06-05 22:17 ` Matheus Tavares Bernardino
2021-06-05 22:21 ` Matheus Tavares Bernardino
2021-06-06 1:01 ` René Scharfe
2021-06-06 1:28 ` Junio C Hamano
2021-06-06 1:01 ` [PATCH v3] " René Scharfe
2021-06-06 1:41 ` Junio C Hamano [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq5yyr22i2.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=l.s.r@web.de \
--cc=matheus.bernardino@usp.br \
--cc=szeder.dev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.