public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox•com>
To: Patrick Steinhardt <ps@pks•im>
Cc: git@vger•kernel.org, "SZEDER Gábor" <szeder.dev@gmail•com>
Subject: Re: [PATCH 2/2] t5333: fix missing terminator for sed(1) 's' command
Date: Mon, 07 Jul 2025 09:15:49 -0700	[thread overview]
Message-ID: <xmqqplec3rka.fsf@gitster.g> (raw)
In-Reply-To: <20250707-b4-pks-t-perlless-fixes-v1-2-92b2de1c3dd0@pks.im> (Patrick Steinhardt's message of "Mon, 07 Jul 2025 13:08:34 +0200")

Patrick Steinhardt <ps@pks•im> writes:

> In 6aec8d38fdd (t: refactor tests depending on Perl to print data,
> 2025-04-03) we have changed some of the tests in t4150 to use sed(1)
> instead of Perl. One of the conversions is broken though:
>
>     sed: -e expression #1, char 41: unterminated `s' command
>
> Curiously enough, the test itself still passes. This is caused by a
> sequence of failures:
>
>   1. The output of sed(1) is piped into git-update-ref(1), and because
>      sed(1) is the upstream command we don't notice that it fails.
>
>   2. git-update-ref(1) does not receive any input and thus won't create
>      any references.
>
>   3. We then repack the repository with the configured pseudo merges
>      pattern, but as we didn't create any references the pattern doesn't
>      match anything.
>
>   4. We use `test_pseudo_merges()` to compute the list of pseudo-merges
>      and write it into a file. This file is empty as there are none.
>
>   5. The loop over the pseudo-merges becomes a no-op.
>
>   6. The final test succeeds as well because the number of lines in an
>      empty file is obviously the same as the number of unique lines,
>      namely zero.
>
> Fix the issue by adding the terminating '|' to the sed(1) command.

OK.

> Furthermore, make the test a tiny bit more robust by not using it as
> part of a pipe.

While I do not think it would give us big enough improvement to
revert this part of the change, I would have liked not to see this
"furthermore" change.  We are not in the business of catching
segfault in 'sed' that is supplied by the platform, so there is no
point in breaking the pipeline here.

Will queue.  Thanks.

> Reported-by: SZEDER Gábor <szeder.dev@gmail•com>
> Signed-off-by: Patrick Steinhardt <ps@pks•im>
> ---
>  t/t5333-pseudo-merge-bitmaps.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/t/t5333-pseudo-merge-bitmaps.sh b/t/t5333-pseudo-merge-bitmaps.sh
> index ba5ae6a00c9..1f7a5d82ee4 100755
> --- a/t/t5333-pseudo-merge-bitmaps.sh
> +++ b/t/t5333-pseudo-merge-bitmaps.sh
> @@ -234,8 +234,8 @@ test_expect_success 'pseudo-merge pattern with capture groups' '
>  			test_commit_bulk 16 &&
>  
>  			git rev-list HEAD~16.. >in &&
> -			sed "s|\(.*\)|create refs/remotes/$r/tags/\1 \1" in |
> -			git update-ref --stdin || return 1
> +			sed "s|\(.*\)|create refs/remotes/$r/tags/\1 \1|" in >refs &&
> +			git update-ref --stdin <refs || return 1
>  		done &&
>  
>  		git \

  reply	other threads:[~2025-07-07 16:15 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-07 11:08 [PATCH 0/2] t: fixes for Perl-less tests Patrick Steinhardt
2025-07-07 11:08 ` [PATCH 1/2] t4150: fix warning printed by awk due to escaped '\@' Patrick Steinhardt
2025-07-07 11:08 ` [PATCH 2/2] t5333: fix missing terminator for sed(1) 's' command Patrick Steinhardt
2025-07-07 16:15   ` Junio C Hamano [this message]
2025-07-08  6:44     ` Patrick Steinhardt

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=xmqqplec3rka.fsf@gitster.g \
    --to=gitster@pobox$(echo .)com \
    --cc=git@vger$(echo .)kernel.org \
    --cc=ps@pks$(echo .)im \
    --cc=szeder.dev@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox