Re: [PATCH 2/2] t5333: fix missing terminator for sed(1) 's' command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 07, 2025 at 09:15:49AM -0700, Junio C Hamano wrote:
> Patrick Steinhardt <ps@xxxxxx> 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.

Segfaults not, but if the pipeline was broken up from the beginning we
would have noticed that sed(1) returned an error due to the missing
separator. True though that it doesn't buy us much now that the error is
fixed. It's not like this line of code is likely to change regularly in
the future.

I'll not send a new version of this patch series to get rid of it, but
if I need to resend I'll remove that part.

Thanks!

Patrick




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux