Hi,
in an attempt to upgrade PgBadger, I stumbled across a strange testing failure, built here:
https://build.opensuse.org/package/show/home:frispete:Tumbleweed/PgBadger
[ 74s] Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.5869h3 [ 74s] + umask 022 [ 74s] + cd /home/abuild/rpmbuild/BUILD [ 74s] + cd pgbadger-10.3 [ 74s] + make test TEST_VERBOSE=1 [ 74s] PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "- MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/ lib', 'blib/arch')" t/*.t [ 75s] t/01_lint.t ......... [ 75s] 1..2 [ 75s] ok 1 - PERL syntax check [ 75s] ok 2 - pod syntax check [ 75s] ok [ 127s] # Failed test 'syslog report to stdout' [ 127s] # at t/02_basics.t line 45. [ 127s] # Looks like you failed 1 test of 10. [ 127s] t/02_basics.t ....... [ 127s] 1..10 [ 127s] ok 1 - Inline help [ 127s] ok 2 - Light log report to stdout [ 127s] ok 3 - Light log report to HTML [ 127s] ok 4 - Light log to binary [ 127s] ok 5 - From binary to JSON [ 127s] ok 6 - Incremental mode report [ 127s] ok 7 - Ressources files in incremental mode [ 127s] ok 8 - Light log from STDIN [ 127s] ok 9 - Multiple output format [ 127s] not ok 10 - syslog report to stdout [ 127s] Dubious, test returned 1 (wstat 256, 0x100) [ 127s] Failed 1/10 subtests [ 127s] # Failed test 'syslog report to stdout' [ 127s] # at t/02_basics.t line 45. [ 127s] # Looks like you failed 1 test of 10. [ 127s] t/02_basics.t ....... [ 127s] 1..10 [ 127s] ok 1 - Inline help [ 127s] ok 2 - Light log report to stdout [ 127s] ok 3 - Light log report to HTML [ 127s] ok 4 - Light log to binary [ 127s] ok 5 - From binary to JSON [ 127s] ok 6 - Incremental mode report [ 127s] ok 7 - Ressources files in incremental mode [ 127s] ok 8 - Light log from STDIN [ 127s] ok 9 - Multiple output format [ 127s] not ok 10 - syslog report to stdout [ 127s] Dubious, test returned 1 (wstat 256, 0x100) [ 127s] Failed 1/10 subtests [ 144s] t/03_consistency.t .. [ 144s] 1..6 [ 144s] ok 1 - Generate intermediate binary file from log [ 144s] ok 2 - Generate json report from binary file [ 144s] ok 3 - Consistent count [ 144s] ok 4 - Consistent query_total [ 144s] ok 5 - Consistent peak write [ 144s] ok 6 - pgBouncer connections [ 144s] ok [ 144s] [ 144s] Test Summary Report [ 144s] ------------------- [ 144s] t/02_basics.t (Wstat: 256 Tests: 10 Failed: 1) [ 144s] Failed test: 10 [ 144s] Non-zero exit status: 1 [ 144s] Files=3, Tests=18, 70 wallclock secs ( 0.06 usr 0.03 sys + 51.16 cusr 3.90 csys = 55.15 CPU) [ 144s] Result: FAIL [ 144s] Failed 1/3 test programs. 1/18 subtests failed.
No idea, why it is running t/02_basics.t twice.
Interestingly, a local build shows significantly different issues:
[ 2s] Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.hj5puV [ 2s] + umask 022 [ 2s] + cd /home/abuild/rpmbuild/BUILD [ 2s] + cd pgbadger-10.3 [ 2s] + make test TEST_VERBOSE=1 [ 2s] PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "- MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/ lib', 'blib/arch')" t/*.t [ 2s] t/01_lint.t ......... [ 2s] 1..2 [ 2s] ok 1 - PERL syntax check [ 2s] ok 2 - pod syntax check [ 2s] ok [ 3s] [ 3s] bunzip2: I/O or other error, bailing out. Possible reason follows. [ 3s] bunzip2: Broken pipe [ 3s] Input file = t/fixtures/light.postgres.log.bz2, output file = (stdout) [ 5s] [ 5s] bunzip2: I/O or other error, bailing out. Possible reason follows. [ 5s] bunzip2: Broken pipe [ 5s] Input file = t/fixtures/light.postgres.log.bz2, output file = (stdout) [ 8s] [...]
Running the tests manually in the extracted package succeed. Hrmpf.
Obviously, the problems are related to piping in sub-shells of the test scripts, but even Devel::Trace and stracing them didn't reveal anything obvious..
Being a complete Perl noob, I'm running out of ideas, what's wrong here.
The package works well, btw.
May some enlightened Perl soul could have a brief look, please?
Thanks in advance, Pete