This really looks like a bug with prove:
$ perl t/reorder.t
ok 1 - test re-ordered list
1..1
$ prove -l -v -p t/reorder.t
t/reorder.t ..
ok 1 - test re-ordered list
1..1
Failed 1/1 subtests
Test Summary Report
-------------------
t/reorder.t (Wstat: 0 Tests: 0 Failed: 0)
Parse errors: Bad plan. You planned 1 tests but ran 0.
Files=1, Tests=0, 1 wallclock secs ( 0.02 usr 0.00 sys + 0.92 cusr 0.07 csys = 1.01 CPU)
Result: FAIL
I can't see what's wrong with the output of reorder test...
I'll try to dig this later on..
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...
[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
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 300 |
Nodes: | 16 (2 / 14) |
Uptime: | 10:29:11 |
Calls: | 6,706 |
Files: | 12,236 |
Messages: | 5,350,844 |