Bug#1069247: libconfig-model-dpkg-perl: test failures

Niko Tyni ntyni at debian.org
Sun Apr 21 14:32:48 BST 2024


[Copying Julian as the apt maintainer.]

On Sat, Apr 20, 2024 at 09:02:35PM +0300, Niko Tyni wrote:
> On Sat, Apr 20, 2024 at 11:09:17AM +0200, Dominique Dumont wrote:
> > On Thursday, 18 April 2024 19:21:55 CEST you wrote:
> > > Source: libconfig-model-dpkg-perl
> > > Version: 3.004
> > > Severity: serious
> > > Tags: ftbfs
> > > Justification: fails to build from source
> > 
> > This really looks like a bug with prove:
> > 
> > $ perl t/reorder.t 
> > ok 1 -  test re-ordered list    
> > 1..1
> 
> > I can't see what's wrong with the output of reorder test...
> 
> Looks like something is injecting apt progress messages to stdout with
> CR characters hiding it on the terminal but obviously not from `prove`.
> 
> $ perl t/reorder.t |od -c

> 0000460   f   o   r   m   a   t   i   o   n   .   .   .       0   %  \r
> 0000500
> *
> 0000540  \r   o   k       1       -           t   e   s   t       r   e
> 0000560   -   o   r   d   e   r   e   d       l   i   s   t  \n   1   .
> 0000600   .   1  \n

These come from apt, via libapt-pkg-perl which I don't think has ever
filtered them away. The thing that broke this is surely output changes
in apt 2.9.

The crucial difference wrt. at least bookworm seems to be that the
apt messages used to end with a line feed "\n" before the actual TAP
format started.  Now it only has a carriage return "\r" there. Apparently
`prove` ignores unknown lines, but now interprets all the apt output to
be part of the first line that ends with the 'ok 1' part. So that gets
ignored as well.

I see the TAP format spec says at

  https://testanything.org/tap-version-14-specification.html

  A Harness should normalize line endings by replacing any instances of
  \r\n or \r in the TAP document with \n.

so I suppose this might be a normal/wishlist bug in `prove`. In that case,
please note that it needs to be fixed in libtest-harness-perl first as
src:perl just bundles an older version of it.

Not sure if apt should go back to ending its output with a line
feed. Julian, what do you think?
-- 
Niko



More information about the pkg-perl-maintainers mailing list