Re: [PATCH] t7406: correct test case for submodule-update initial population
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 22, 2017, 22:12 UTC
- Message-ID
- <xmqq37e5hsg8.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20170322215951.f4xbxehzvsd64c4y@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 18 quoted lines
> Neither of those is true, but I think:
>
> cat >expect <<-EOF &&
> Execution of '\''false $submodulesha1'\'' failed in ...
> EOF
>
> is safer and less surprising. The single-quote handling is unfortunate and
> ugly, but necessary to get them into the shell snippet in the first
> place. I notice the others tests in this script set up the expect file
> outside of a block. You could also do something like:
>
> sq=\'
> test_expect_success '...' '
> cat >expect <<-EOF
> Execution of ${sq}false $submodulesha1${sq} ...
> '
>
> but I'm not sure if that is any more readable.Yup, my eyes have long learned to coast over '\'' as an idiomatic symbol, but I agree that it is harder to see until you get used to it (and I do not think it is particularly useful skill to be able to spot '\'' as a logical unit, either). ${sq} thing may make it easier to read but I think the one you did in the first quoted part in this reply is good enough.
-- >8 -- Subject: t7406: correct test case for submodule-update initial population
There are three issues with the test:
* The syntax of the here-doc was wrong, such that the entire test was sucked into the here-doc, which is why the test succeeded successfully.
* The variable $submodulesha1 was not expanded as it was inside a quoted here text. We do not want to quote EOF marker for this.
* The redirection from the git command to the output file for comparison was wrong as the -C operator from git doesn't apply to the redirect path. Also we're interested in stderr of that command.
Noticed-by: Jan Palus <jan.palus@gmail.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> ---
t/t7406-submodule-update.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh index 8c086a429b..a70fe96ad6 100755 --- a/t/t7406-submodule-update.sh +++ b/t/t7406-submodule-update.sh @@ -425,11 +425,11 @@ test_expect_success 'submodule update - command in .git/config catches failure - ' test_expect_success 'submodule update - command run for initial population of submodule' ' - cat <<-\ EOF >expect + cat >expect <<-EOF && Execution of '\''false $submodulesha1'\'' failed in submodule path '\''submodule'\'' - EOF && + EOF rm -rf super/submodule && - test_must_fail git -C super submodule update >../actual && + test_must_fail git -C super submodule update 2>actual && test_cmp expect actual && git -C super submodule update --checkout '