Bug#1101853: libcode-tidyall-perl: FTBFS: Failed 1/24 test programs. 4/222 subtests failed.

Santiago Vila sanvila at debian.org
Tue Apr 1 18:12:47 BST 2025


Package: src:libcode-tidyall-perl
Version: 0.84~ds-1
Severity: serious
Tags: ftbfs trixie sid

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean
   dh_clean
 debian/rules binary
dh binary
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
	/usr/bin/perl Makefile.PL INSTALLDIRS=vendor "OPTIMIZE=-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2" "LD=x86_64-linux-gnu-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wl,-z,relro"
Checking if your kit is complete...
Warning: the following files are missing in your kit:
	php/PHP_CodeSniffer/autoload.php
	php/PHP_CodeSniffer/bin/phpcbf
	php/PHP_CodeSniffer/bin/phpcbf.bat

[... snipped ...]

#   (in TestFor::Code::TidyAll::Git->test_copied_status)
# 
# TestFor::Code::TidyAll::Git->test_git

#   Failed test 'test_git died (Error mkdir on '/tmp/Code-TidyAll-eLwW/work/.git/hooks': method argument was given, but was not a hash reference at /<<PKGBUILDDIR>>/t/lib/TestFor/Code/TidyAll/Git.pm line 346.)'
#   at t/Git.t line 5.
#   (in TestFor::Code::TidyAll::Git->test_git)
# 
# TestFor::Code::TidyAll::Git->test_precommit_no_stash_merge

#   Failed test 'test_precommit_no_stash_merge died (Error mkdir on '/tmp/Code-TidyAll-1imT/work/.git/hooks': method argument was given, but was not a hash reference at /<<PKGBUILDDIR>>/t/lib/TestFor/Code/TidyAll/Git.pm line 346.)'
#   at t/Git.t line 5.
#   (in TestFor::Code::TidyAll::Git->test_precommit_no_stash_merge)
# 
# TestFor::Code::TidyAll::Git->test_precommit_stash_issues

#   Failed test 'test_precommit_stash_issues died (Error mkdir on '/tmp/Code-TidyAll-x3WT/work/.git/hooks': method argument was given, but was not a hash reference at /<<PKGBUILDDIR>>/t/lib/TestFor/Code/TidyAll/Git.pm line 346.)'
#   at t/Git.t line 5.
#   (in TestFor::Code::TidyAll::Git->test_precommit_stash_issues)
# Looks like you failed 4 tests of 4.
t/Git.t ........................ 
not ok 1 - test_copied_status died (Error mkdir on '/tmp/Code-TidyAll-AdQV/work/.git/hooks': method argument was given, but was not a hash reference at /<<PKGBUILDDIR>>/t/lib/TestFor/Code/TidyAll/Git.pm line 346.)
not ok 2 - test_git died (Error mkdir on '/tmp/Code-TidyAll-eLwW/work/.git/hooks': method argument was given, but was not a hash reference at /<<PKGBUILDDIR>>/t/lib/TestFor/Code/TidyAll/Git.pm line 346.)
not ok 3 - test_precommit_no_stash_merge died (Error mkdir on '/tmp/Code-TidyAll-1imT/work/.git/hooks': method argument was given, but was not a hash reference at /<<PKGBUILDDIR>>/t/lib/TestFor/Code/TidyAll/Git.pm line 346.)
not ok 4 - test_precommit_stash_issues died (Error mkdir on '/tmp/Code-TidyAll-x3WT/work/.git/hooks': method argument was given, but was not a hash reference at /<<PKGBUILDDIR>>/t/lib/TestFor/Code/TidyAll/Git.pm line 346.)
1..4
Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/4 subtests 
# 
# TestFor::Code::TidyAll::Parallel->test_parallel
t/parallel.t ................... 
ok 1 - three jobs in parallel - error_count == 0
ok 2 - three jobs in parallel - bar.txt content
ok 3 - three jobs in parallel - baz.txt content
ok 4 - three jobs in parallel - foo.txt content
ok 5 - three jobs in parallel - quux.txt content
ok 6 - three jobs in parallel - output
1..6
ok
# 
# TestFor::Code::TidyAll::Plugin::CSSUnminifier->test_main
t/Plugin-CSSUnminifier.t ....... 
ok 1 # skip These tests require that cssunminifier be in your $PATH - current $PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/<<PKGBUILDDIR>>/node_modules/.bin
1..1
ok
# 
# TestFor::Code::TidyAll::Plugin::GenericTransformer->test_main
# [checked] foo.txt
# Running [/usr/bin/perl /<<PKGBUILDDIR>>/t/helper-bin/exit.pl 3 /tmp/Code-TidyAll-0ycA/foo.txt] failed
#     exited with 3
t/Plugin-GenericTransformer.t .. 
# Subtest: text not containing forbidden word is unchanged
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 1 - text not containing forbidden word is unchanged
# Subtest: text containing forbidden word is transformed
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 2 - text containing forbidden word is transformed
# Subtest: generic transformer preserves crlf line endings
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 3 - generic transformer preserves crlf line endings
# Subtest: generic transformer preserves linefeed line endings
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 4 - generic transformer preserves linefeed line endings
# Subtest: exit code of 3 is an exception
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 5 - exit code of 3 is an exception
1..5
ok
# 
# TestFor::Code::TidyAll::Plugin::GenericValidator->test_main
# [checked] foo.txt
# Running [/usr/bin/perl /<<PKGBUILDDIR>>/t/helper-bin/generic-validator.pl /tmp/Code-TidyAll-gm7e/foo.txt] failed
#     exited with 1
# [checked] foo.txt
# Running [/usr/bin/perl /<<PKGBUILDDIR>>/t/helper-bin/exit.pl 3 /tmp/Code-TidyAll-5yfk/foo.txt] failed
#     exited with 3
t/Plugin-GenericValidator.t .... 
# Subtest: text does not contain forbidden word
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 1 - text does not contain forbidden word
# Subtest: text does contain forbidden word
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 2 - text does contain forbidden word
# Subtest: exit code of 2 is ok
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 3 - exit code of 2 is ok
# Subtest: exit code of 3 is an exception
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 4 - exit code of 3 is an exception
1..4
ok
# 
# TestFor::Code::TidyAll::Plugin::JSBeautify->test_main
# 
# TestFor::Code::TidyAll::Plugin::JSBeautify->test_utf8
t/Plugin-JSBeautify.t .......... 
ok 1 # skip These tests require that js-beautify be in your $PATH - current $PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/<<PKGBUILDDIR>>/node_modules/.bin
ok 2 # skip These tests require that js-beautify be in your $PATH - current $PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/<<PKGBUILDDIR>>/node_modules/.bin
ok 3 - no (unexpected) warnings (via END block)
1..3
ok
# 
# TestFor::Code::TidyAll::Plugin::JSHint->test_main
t/Plugin-JSHint.t .............. 
ok 1 # skip These tests require that jshint be in your $PATH - current $PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/<<PKGBUILDDIR>>/node_modules/.bin
1..1
ok
# 
# TestFor::Code::TidyAll::Plugin::JSLint->test_main
t/Plugin-JSLint.t .............. 
ok 1 # skip These tests require that jslint be in your $PATH - current $PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/<<PKGBUILDDIR>>/node_modules/.bin
1..1
ok
t/Plugin-MasonTidy.t ........... 
1..1
ok 1 # skip This test requires the Mason::Tidy module
ok
# 
# TestFor::Code::TidyAll::Plugin::PerlCritic->test_main
# [checked] foo.txt
# Running [perlcritic --profile /tmp/Code-TidyAll-9F2i/perlcriticrc /tmp/Code-TidyAll-8mkd/foo.txt] failed
#     exited with 2 - output was:
# Code before strictures are enabled at line 1, column 1.  See page 429 of PBP.  (Severity: 5)
# 
# [checked] foo.txt
# Running [perlcritic --profile /tmp/Code-TidyAll-9F2i/perlcriticrc --badoption /tmp/Code-TidyAll-2CAj/foo.txt] failed
#     exited with 2 - output was:
# Unknown option: badoption
# Usage:
#       perlcritic [-12345 | --brutal | --cruel | --harsh | --stern | --gentle]
#                  [--severity number | name] [{-p | --profile} file | --noprofile]
#                  [--top [ number ]] [--theme expression] [--include pattern]
#                  [--exclude pattern] [{-s | --single-policy} pattern]
#                  [--only | --noonly] [--profile-strictness {warn|fatal|quiet}]
#                  [--force | --noforce] [--statistics] [--statistics-only]
#                  [--count | -C] [--verbose {number | format}] [--allow-unsafe]
#                  [--color | --nocolor] [--pager pager] [--quiet]
#                  [--color-severity-highest color_specification]
#                  [--color-severity-high color_specification]
#                  [--color-severity-medium color_specification]
#                  [--color-severity-low color_specification]
#                  [--color-severity-lowest color_specification]
#                  [--files-with-violations | -l]
#                  [--files-without-violations | -L]
#                  [--program-extensions file_name_extension]
#                  {FILE | DIRECTORY | STDIN}
# 
#       perlcritic --profile-proto
# 
#       perlcritic { --list | --list-enabled | --list-themes | --doc pattern [...] }
# 
#       perlcritic { --help | --options | --man | --version }
# 
# 
# [checked] foo.txt
# Running [perlcritic --profile /tmp/Code-TidyAll-9F2i/perlcriticrc /tmp/Code-TidyAll-ZNaX/foo.txt] failed
#     exited with 25 - output was:
# "badconfig" is not a supported option.
# 
t/Plugin-PerlCritic.t .......... 
# Subtest: my $foo = 5
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 1 - my $foo = 5
# 
# Subtest: use strict;
# use warnings;
# my $foo = 5
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 2 - use strict;
# use warnings;
# my $foo = 5
# 
# Subtest: my $foo = 5
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 3 - my $foo = 5
# 
# Subtest: my $foo = 5
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 4 - my $foo = 5
# 
# Subtest: my $foo = 5
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 5 - my $foo = 5
# 
1..5
ok
# 
# TestFor::Code::TidyAll::Plugin::PerlTidy->test_getopt_bug
# 
# TestFor::Code::TidyAll::Plugin::PerlTidy->test_main
# [checked] foo.txt
# Perltidy version is 20250105
# 
# <source_stream>: Begin Error Output Stream
# 2: final indentation level: 1
# 
# Final nesting depth of '{'s is 1
# The most recent un-matched '{' is on line 1
# 1: if ($foo) {
#              ^
# 2: To save a full .LOG file rerun with -g
# [checked] foo.txt
# Unknown option: badoption
# Error on command line; for help try 'perltidy -h'
t/Plugin-PerlTidy.t ............ 
# Subtest: if (  $foo) {\nmy   $bar =  $baz;\n}\n
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 1 - if (  $foo) {\nmy   $bar =  $baz;\n}\n
# Subtest: if (  $foo) {\nmy   $bar =  $baz;\n}\n
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 2 - if (  $foo) {\nmy   $bar =  $baz;\n}\n
# Subtest: if (  $foo) {\nmy   $bar =  $baz;\n}\n
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 3 - if (  $foo) {\nmy   $bar =  $baz;\n}\n
# Subtest: if ($foo) {\n    my $bar = $baz;\n}\n
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 4 - if ($foo) {\n    my $bar = $baz;\n}\n
# Subtest: if ($foo) {\n    my $bar = $baz;\n
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 5 - if ($foo) {\n    my $bar = $baz;\n
# Subtest: if (  $foo) {\nmy   $bar =  $baz;\n}\n
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 6 - if (  $foo) {\nmy   $bar =  $baz;\n}\n
1..6
ok
# 
# TestFor::Code::TidyAll::Plugin::PerlTidySweet->test_main
# [checked] foo.txt
# Perltidy version is 20250105
# 
# <source_stream>: Begin Error Output Stream
# 2: final indentation level: 1
# 
# Final nesting depth of '{'s is 1
# The most recent un-matched '{' is on line 1
# 1: if ($foo) {
#              ^
# 2: To save a full .LOG file rerun with -g
# [checked] foo.txt
# Unknown option: badoption
# Error on command line; for help try 'perltidy -h'
t/Plugin-PerlTidySweet.t ....... 
# Subtest: if (  $foo) {\nmy   $bar =  $baz;\n}\n
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 1 - if (  $foo) {\nmy   $bar =  $baz;\n}\n
# Subtest: if (  $foo) {\nmy   $bar =  $baz;\n}\n
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 2 - if (  $foo) {\nmy   $bar =  $baz;\n}\n
# Subtest: if ($foo) {\n    my $bar = $baz;\n}\n
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 3 - if ($foo) {\n    my $bar = $baz;\n}\n
# Subtest: method  foo  ($x,$y){\nmy  $x=$self->x;}\n
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 4 - method  foo  ($x,$y){\nmy  $x=$self->x;}\n
# Subtest: if ($foo) {\n    my $bar = $baz;\n
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 5 - if ($foo) {\n    my $bar = $baz;\n
# Subtest: if (  $foo) {\nmy   $bar =  $baz;\n}\n
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 6 - if (  $foo) {\nmy   $bar =  $baz;\n}\n
1..6
ok
# 
# TestFor::Code::TidyAll::Plugin::PHPCodeSniffer->test_main
t/Plugin-PHPCodeSniffer.t ...... 
ok 1 # skip These tests require that php be in your $PATH - current $PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/<<PKGBUILDDIR>>/php/PHP_CodeSniffer/bin
1..1
ok
# 
# TestFor::Code::TidyAll::Plugin::PodChecker->test_main
# [checked] foo.txt
# *** ERROR: =over without closing =back at line 3 in file /tmp/Code-TidyAll-B9Tq/foo.txt
# [checked] foo.txt
# *** WARNING: empty section in previous paragraph at line 3 in file /tmp/Code-TidyAll-f3AD/foo.txt
# [checked] foo.txt
# *** WARNING: multiple occurrences (2) of link target 'DESCRIPTION' at line - in file /tmp/Code-TidyAll-ydJY/foo.txt
t/Plugin-PodChecker.t .......... 
# Subtest: ok
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 1 - ok
# Subtest: error
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 2 - error
# Subtest: ok - empty section, no warnings
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 3 - ok - empty section, no warnings
# Subtest: error - empty section, warnings=1
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 4 - error - empty section, warnings=1
# Subtest: ok - duplicate section, warnings=1
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 5 - ok - duplicate section, warnings=1
# Subtest: error - duplicate section, warnings=2
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 6 - error - duplicate section, warnings=2
1..6
ok
# 
# TestFor::Code::TidyAll::Plugin::PodSpell->test_main
# [checked] Foo.pod
# unrecognized words:
# browwn
# lazeey
# [checked] Foo.pod
# unrecognized words:
# lazeey
t/Plugin-PodSpell.t ............ 
# Subtest: ok
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 1 - ok
# Subtest: spelling mistakes
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 2 - spelling mistakes
# Subtest: spelling mistakes, one in dictionary
    ok 1 - state=error
    ok 2 - error message
    1..2
ok 3 - spelling mistakes, one in dictionary
# Subtest: spelling mistakes, all in dictionary
    ok 1 - state=checked
    ok 2 - no error
    1..2
ok 4 - spelling mistakes, all in dictionary
1..4
ok
t/Plugin-PodTidy.t ............. 
1..1
ok 1 # skip This test requires the Pod::Tidy module
ok
# 
# TestFor::Code::TidyAll::Plugin::SortLines->test_main
t/Plugin-SortLines.t ........... 
# Subtest: c
# b
# a
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 1 - c
# b
# a
# 
# Subtest: 
# 
# a
# 
# 
    ok 1 - state=tidied
    ok 2 - new contents
    ok 3 - no error
    1..3
ok 2 - 
# 
# a
# 
# 
# 
1..2
ok
t/spaces-in-paths.t ............ 
1..1
ok 1 # skip This test requires the Mason::Tidy module
ok
# 
# TestFor::Code::TidyAll::Util->test_tempdir_simple
t/Util.t ....................... 
ok 1 - tempdir exists
ok 2 - parent exists
ok 3 - tempdir does not exist after it goes out of scope
1..3
ok
# 
# TestFor::Code::TidyAll::Util::Zglob->test_match
t/Zglob.t ...................... 
ok 1 - foo.txt matches **/*.txt
ok 2 - foo/baz.txt matches **/*.txt
ok 3 - foo/bar/baz.txt matches **/*.txt
ok 4 - foo/bar/baz.tx does not match **/*.txt
ok 5 - foo matches **/*
ok 6 - foo.txt matches **/*
ok 7 - foo/bar matches **/*
ok 8 - foo/baz.txt matches **/*
ok 9 - foo/baz.txt matches foo/**/*.txt
ok 10 - foo/bar/baz.txt matches foo/**/*.txt
ok 11 - foo/bar/baz/blargh.txt matches foo/**/*.txt
ok 12 - foo.txt does not match foo/**/*.txt
ok 13 - foo/bar/baz.tx does not match foo/**/*.txt
1..13
ok

Test Summary Report
-------------------
t/Git.t                      (Wstat: 1024 (exited 4) Tests: 4 Failed: 4)
  Failed tests:  1-4
  Non-zero exit status: 4
Files=24, Tests=222,  8 wallclock secs ( 0.05 usr  0.02 sys +  6.78 cusr  1.35 csys =  8.20 CPU)
Result: FAIL
Failed 1/24 test programs. 4/222 subtests failed.
make[1]: *** [Makefile:1092: test_dynamic] Error 255
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_test: error: make -j2 test TEST_VERBOSE=1 returned exit code 2
make: *** [debian/rules:4: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202504/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:libcode-tidyall-perl, so that this is still
visible in the BTS web page for this package.

Thanks.



More information about the pkg-perl-maintainers mailing list