Bug#1081869: libsub-handlesvia-perl: FTBFS: failing tests

Santiago Vila sanvila at debian.org
Sun Sep 15 18:31:46 BST 2024


Package: src:libsub-handlesvia-perl
Version: 0.050000-1
Severity: serious
Tags: ftbfs

Dear maintainer:

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

--------------------------------------------------------------------------------
[...]
  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...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Sub::HandlesVia
Writing MYMETA.yml and MYMETA.json
    dh_auto_build
	make -j2
make[1]: Entering directory '/<<PKGBUILDDIR>>'

[... snipped ...]

# Subtest: Testing my_execute_method_void
     ok 1 - $result is undef
     ok 2 - $context is undef
     ok 3 - no exception thrown running execute_method_void example
     1..3
ok 12 - Testing my_execute_method_void
ok 13 - MyTest::TestClass::Code->can('my_execute_scalar')
# Subtest: Testing my_execute_scalar
     ok 1 - $result is 'code'
     ok 2 - $context is false
     ok 3 - no exception thrown running execute_scalar example
     1..3
ok 14 - Testing my_execute_scalar
ok 15 - MyTest::TestClass::Code->can('my_execute_void')
# Subtest: Testing my_execute_void
     ok 1 - $result is undef
     ok 2 - $context is undef
     ok 3 - no exception thrown running execute_void example
     1..3
ok 16 - Testing my_execute_void
1..16
ok
t/40mite/counter.t .....................
ok 1 - MyTest::TestClass::Counter->can('my_dec')
# Subtest: Testing my_dec
     ok 1 - $object->attr is 8
     ok 2 - $object->attr is 3
     ok 3 - no exception thrown running dec example
     1..3
ok 2 - Testing my_dec
ok 3 - MyTest::TestClass::Counter->can('my_inc')
# Subtest: Testing my_inc
     ok 1 - $object->attr is 2
     ok 2 - $object->attr is 5
     ok 3 - no exception thrown running inc example
     1..3
ok 4 - Testing my_inc
ok 5 - MyTest::TestClass::Counter->can('my_reset')
# Subtest: Testing my_reset
     ok 1 - $object->attr is 0
     ok 2 - no exception thrown running reset example
     1..2
ok 6 - Testing my_reset
ok 7 - MyTest::TestClass::Counter->can('my_set')
# Subtest: Testing my_set
     ok 1 - $object->attr is 5
     ok 2 - no exception thrown running set example
     1..2
ok 8 - Testing my_set
1..8
ok
t/40mite/hash.t ........................
ok 1 - MyTest::TestClass::Hash->can('my_accessor')
ok 2 - MyTest::TestClass::Hash->can('my_all')
# Subtest: Testing my_all
     ok 1 - no exception thrown running all example
     1..1
ok 3 - Testing my_all
ok 4 - MyTest::TestClass::Hash->can('my_clear')
# Subtest: Testing my_clear
     ok 1 - exists $object->attr->{foo} is false
     ok 2 - exists $object->attr->{bar} is false
     ok 3 - no exception thrown running clear example
     1..3
ok 5 - Testing my_clear
ok 6 - MyTest::TestClass::Hash->can('my_count')
# Subtest: Testing my_count
     ok 1 - $object->my_count is 2
     ok 2 - no exception thrown running count example
     1..2
ok 7 - Testing my_count
ok 8 - MyTest::TestClass::Hash->can('my_defined')
# Subtest: Testing my_defined
     ok 1 - $object->my_defined( 'foo' ) is 1
     ok 2 - no exception thrown running defined example
     1..2
ok 9 - Testing my_defined
ok 10 - MyTest::TestClass::Hash->can('my_delete')
# Subtest: Testing my_delete
     ok 1 - exists $object->attr->{foo} is false
     ok 2 - no exception thrown running delete example
     1..2
ok 11 - Testing my_delete
ok 12 - MyTest::TestClass::Hash->can('my_delete_where')
# Subtest: Testing my_delete_where
     ok 1 - $object->attr deep match
     ok 2 - $object2->attr deep match
     ok 3 - no exception thrown running delete_where example
     1..3
ok 13 - Testing my_delete_where
ok 14 - MyTest::TestClass::Hash->can('my_elements')
# Subtest: Testing my_elements
     ok 1 - no exception thrown running elements example
     1..1
ok 15 - Testing my_elements
ok 16 - MyTest::TestClass::Hash->can('my_exists')
# Subtest: Testing my_exists
     ok 1 - $object->my_exists( 'foo' ) is true
     ok 2 - $object->my_exists( 'baz' ) is false
     ok 3 - no exception thrown running exists example
     1..3
ok 17 - Testing my_exists
ok 18 - MyTest::TestClass::Hash->can('my_for_each_key')
ok 19 - MyTest::TestClass::Hash->can('my_for_each_pair')
ok 20 - MyTest::TestClass::Hash->can('my_for_each_value')
ok 21 - MyTest::TestClass::Hash->can('my_get')
# Subtest: Testing my_get
     ok 1 - $object->my_get( 'bar' ) is 1
     ok 2 - no exception thrown running get example
     1..2
ok 22 - Testing my_get
ok 23 - MyTest::TestClass::Hash->can('my_is_empty')
# Subtest: Testing my_is_empty
     ok 1 - $object->my_is_empty is false
     ok 2 - $object->my_is_empty is true
     ok 3 - no exception thrown running is_empty example
     1..3
ok 24 - Testing my_is_empty
ok 25 - MyTest::TestClass::Hash->can('my_keys')
# Subtest: Testing my_keys
     ok 1 - no exception thrown running keys example
     1..1
ok 26 - Testing my_keys
ok 27 - MyTest::TestClass::Hash->can('my_kv')
ok 28 - MyTest::TestClass::Hash->can('my_reset')
ok 29 - MyTest::TestClass::Hash->can('my_set')
# Subtest: Testing my_set
     ok 1 - $object->attr->{foo} is 0
     ok 2 - $object->attr->{baz} is 1
     ok 3 - $object->attr->{bar} is 2
     ok 4 - no exception thrown running set example
     1..4
ok 30 - Testing my_set
ok 31 - MyTest::TestClass::Hash->can('my_shallow_clone')
ok 32 - MyTest::TestClass::Hash->can('my_sorted_keys')
# Subtest: Testing my_sorted_keys
     ok 1 - no exception thrown running sorted_keys example
     1..1
ok 33 - Testing my_sorted_keys
ok 34 - MyTest::TestClass::Hash->can('my_values')
# Subtest: Testing my_values
     ok 1 - no exception thrown running values example
     1..1
ok 35 - Testing my_values
1..35
ok
t/40mite/number.t ......................
ok 1 - MyTest::TestClass::Number->can('my_abs')
# Subtest: Testing my_abs
     ok 1 - $object->attr is 5
     ok 2 - no exception thrown running abs example
     1..2
ok 2 - Testing my_abs
ok 3 - MyTest::TestClass::Number->can('my_add')
# Subtest: Testing my_add
     ok 1 - $object->attr is 9
     ok 2 - no exception thrown running add example
     1..2
ok 4 - Testing my_add
ok 5 - MyTest::TestClass::Number->can('my_cmp')
ok 6 - MyTest::TestClass::Number->can('my_div')
# Subtest: Testing my_div
     ok 1 - $object->attr is 3
     ok 2 - no exception thrown running div example
     1..2
ok 7 - Testing my_div
ok 8 - MyTest::TestClass::Number->can('my_eq')
ok 9 - MyTest::TestClass::Number->can('my_ge')
ok 10 - MyTest::TestClass::Number->can('my_get')
# Subtest: Testing my_get
     ok 1 - $object->my_get is 4
     ok 2 - no exception thrown running get example
     1..2
ok 11 - Testing my_get
ok 12 - MyTest::TestClass::Number->can('my_gt')
ok 13 - MyTest::TestClass::Number->can('my_le')
ok 14 - MyTest::TestClass::Number->can('my_lt')
ok 15 - MyTest::TestClass::Number->can('my_mod')
# Subtest: Testing my_mod
     ok 1 - $object->attr is 1
     ok 2 - no exception thrown running mod example
     1..2
ok 16 - Testing my_mod
ok 17 - MyTest::TestClass::Number->can('my_mul')
# Subtest: Testing my_mul
     ok 1 - $object->attr is 10
     ok 2 - no exception thrown running mul example
     1..2
ok 18 - Testing my_mul
ok 19 - MyTest::TestClass::Number->can('my_ne')
ok 20 - MyTest::TestClass::Number->can('my_set')
# Subtest: Testing my_set
     ok 1 - $object->attr is 5
     ok 2 - no exception thrown running set example
     1..2
ok 21 - Testing my_set
ok 22 - MyTest::TestClass::Number->can('my_sub')
# Subtest: Testing my_sub
     ok 1 - $object->attr is 3
     ok 2 - no exception thrown running sub example
     1..2
ok 23 - Testing my_sub
1..23
ok
t/40mite/scalar.t ......................
ok 1 - MyTest::TestClass::Scalar->can('my_make_getter')
# Subtest: Testing my_make_getter
     ok 1 - $getter->() is 11
     ok 2 - no exception thrown running make_getter example
     1..2
ok 2 - Testing my_make_getter
ok 3 - MyTest::TestClass::Scalar->can('my_make_setter')
# Subtest: Testing my_make_setter
     ok 1 - $object->attr is 11
     ok 2 - no exception thrown running make_setter example
     1..2
ok 4 - Testing my_make_setter
ok 5 - MyTest::TestClass::Scalar->can('my_scalar_reference')
# Subtest: Testing my_scalar_reference
     ok 1 - $object->attr is 11
     ok 2 - no exception thrown running scalar_reference example
     1..2
ok 6 - Testing my_scalar_reference
1..6
ok
t/40mite/string.t ......................
ok 1 - MyTest::TestClass::String->can('my_append')
# Subtest: Testing my_append
     ok 1 - $object->attr is 'foobar'
     ok 2 - no exception thrown running append example
     1..2
ok 2 - Testing my_append
ok 3 - MyTest::TestClass::String->can('my_chomp')
ok 4 - MyTest::TestClass::String->can('my_chop')
ok 5 - MyTest::TestClass::String->can('my_clear')
# Subtest: Testing my_clear
     #
     ok 1 - no exception thrown running clear example
     1..1
ok 6 - Testing my_clear
ok 7 - MyTest::TestClass::String->can('my_cmp')
ok 8 - MyTest::TestClass::String->can('my_cmpi')
ok 9 - MyTest::TestClass::String->can('my_contains')
ok 10 - MyTest::TestClass::String->can('my_contains_i')
ok 11 - MyTest::TestClass::String->can('my_ends_with')
ok 12 - MyTest::TestClass::String->can('my_ends_with_i')
ok 13 - MyTest::TestClass::String->can('my_eq')
ok 14 - MyTest::TestClass::String->can('my_eqi')
ok 15 - MyTest::TestClass::String->can('my_fc')
ok 16 - MyTest::TestClass::String->can('my_ge')
ok 17 - MyTest::TestClass::String->can('my_gei')
ok 18 - MyTest::TestClass::String->can('my_get')
# Subtest: Testing my_get
     ok 1 - $object->my_get is 'foo'
     ok 2 - no exception thrown running get example
     1..2
ok 19 - Testing my_get
ok 20 - MyTest::TestClass::String->can('my_gt')
ok 21 - MyTest::TestClass::String->can('my_gti')
ok 22 - MyTest::TestClass::String->can('my_inc')
ok 23 - MyTest::TestClass::String->can('my_lc')
ok 24 - MyTest::TestClass::String->can('my_le')
ok 25 - MyTest::TestClass::String->can('my_lei')
ok 26 - MyTest::TestClass::String->can('my_length')
# Subtest: Testing my_length
     ok 1 - $object->my_length is 3
     ok 2 - no exception thrown running length example
     1..2
ok 27 - Testing my_length
ok 28 - MyTest::TestClass::String->can('my_lt')
ok 29 - MyTest::TestClass::String->can('my_lti')
ok 30 - MyTest::TestClass::String->can('my_match')
# Subtest: Testing my_match
     # matched!
     ok 1 - no exception thrown running match example
     1..1
ok 31 - Testing my_match
ok 32 - MyTest::TestClass::String->can('my_match_i')
# Subtest: Testing my_match_i
     # matched!
     ok 1 - no exception thrown running match_i example
     1..1
ok 33 - Testing my_match_i
ok 34 - MyTest::TestClass::String->can('my_ne')
ok 35 - MyTest::TestClass::String->can('my_nei')
ok 36 - MyTest::TestClass::String->can('my_prepend')
# Subtest: Testing my_prepend
     ok 1 - $object->attr is 'barfoo'
     ok 2 - no exception thrown running prepend example
     1..2
ok 37 - Testing my_prepend
ok 38 - MyTest::TestClass::String->can('my_replace')
# Subtest: Testing my_replace
     ok 1 - $object->attr is 'fao'
     ok 2 - $object2->attr is 'feo'
     ok 3 - no exception thrown running replace example
     1..3
ok 39 - Testing my_replace
ok 40 - MyTest::TestClass::String->can('my_replace_globally')
# Subtest: Testing my_replace_globally
     ok 1 - $object->attr is 'faa'
     ok 2 - $object2->attr is 'fee'
     ok 3 - no exception thrown running replace_globally example
     1..3
ok 41 - Testing my_replace_globally
ok 42 - MyTest::TestClass::String->can('my_reset')
ok 43 - MyTest::TestClass::String->can('my_set')
# Subtest: Testing my_set
     ok 1 - $object->attr is 'bar'
     ok 2 - no exception thrown running set example
     1..2
ok 44 - Testing my_set
ok 45 - MyTest::TestClass::String->can('my_starts_with')
ok 46 - MyTest::TestClass::String->can('my_starts_with_i')
ok 47 - MyTest::TestClass::String->can('my_substr')
ok 48 - MyTest::TestClass::String->can('my_uc')
1..48
ok
'has' is no longer supported; use 'field' instead at t/50objectpad.t line 11, near "	has "
t/50objectpad.t ........................
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run
t/60detect.t ...........................
ok 1 - role ok
1..1
ok
t/61moosemetagubbins.t .................
ok 1 - yay
1..1
ok
t/62mousemetagubbins.t .................
ok 1 - yay
1..1
ok
t/80beam.t ............................. skipped: Test requires module 'Beam::Wire' but it's not found
t/81mxpa.t ............................. skipped: Test requires module 'MooX::ProtectedAttributes' but it's not found
t/94cmp.t ..............................
ok 1 - ok  $object->my_str("foo")->my_str_eq("foo")
ok 2 - ok !$object->my_str("foo")->my_str_eq("bar")
ok 3 - ok !$object->my_str("foo")->my_str_ne("foo")
ok 4 - ok  $object->my_str("foo")->my_str_ne("bar")
ok 5 - ok !$object->my_str("foo")->my_str_cmp("foo")
ok 6 - ok  $object->my_str("foo")->my_str_cmp("bar")
ok 7 - ok  $object->my_str("foo")->my_str_cmp("xyz")
ok 8 - ok !$object->my_str("foo")->my_str_lt("foo")
ok 9 - ok !$object->my_str("foo")->my_str_lt("bar")
ok 10 - ok  $object->my_str("foo")->my_str_lt("xyz")
ok 11 - ok  $object->my_str("foo")->my_str_le("foo")
ok 12 - ok !$object->my_str("foo")->my_str_le("bar")
ok 13 - ok  $object->my_str("foo")->my_str_le("xyz")
ok 14 - ok !$object->my_str("foo")->my_str_gt("foo")
ok 15 - ok  $object->my_str("foo")->my_str_gt("bar")
ok 16 - ok !$object->my_str("foo")->my_str_gt("xyz")
ok 17 - ok  $object->my_str("foo")->my_str_ge("foo")
ok 18 - ok  $object->my_str("foo")->my_str_ge("bar")
ok 19 - ok !$object->my_str("foo")->my_str_ge("xyz")
ok 20 - ok !$object->my_str("foo")->my_str_eq("FOO")
ok 21 - ok  $object->my_str("foo")->my_str_ne("FOO")
ok 22 - ok  $object->my_str("foo")->my_str_eqi("FOO")
ok 23 - ok !$object->my_str("foo")->my_str_nei("FOO")
ok 24 - ok  $object->my_num("42")->my_num_eq("42")
ok 25 - ok !$object->my_num("42")->my_num_eq("18")
ok 26 - ok !$object->my_num("42")->my_num_ne("42")
ok 27 - ok  $object->my_num("42")->my_num_ne("18")
ok 28 - ok !$object->my_num("42")->my_num_cmp("42")
ok 29 - ok  $object->my_num("42")->my_num_cmp("18")
ok 30 - ok  $object->my_num("42")->my_num_cmp("69")
ok 31 - ok !$object->my_num("42")->my_num_lt("42")
ok 32 - ok !$object->my_num("42")->my_num_lt("18")
ok 33 - ok  $object->my_num("42")->my_num_lt("69")
ok 34 - ok  $object->my_num("42")->my_num_le("42")
ok 35 - ok !$object->my_num("42")->my_num_le("18")
ok 36 - ok  $object->my_num("42")->my_num_le("69")
ok 37 - ok !$object->my_num("42")->my_num_gt("42")
ok 38 - ok  $object->my_num("42")->my_num_gt("18")
ok 39 - ok !$object->my_num("42")->my_num_gt("69")
ok 40 - ok  $object->my_num("42")->my_num_ge("42")
ok 41 - ok  $object->my_num("42")->my_num_ge("18")
ok 42 - ok !$object->my_num("42")->my_num_ge("69")
ok 43 - $object->my_str_uc
ok 44 - $object->my_str_lc
ok 45 - !$object->my_str_match_i(Str)
ok 46 - $object->my_str_match_i(Str)
ok 47 - $object->my_str_match_i(RegexpRef)
ok 48 - $object->my_str_starts_with
ok 49 - $object->my_str_starts_with_i
ok 50 - $object->my_str_ends_with
ok 51 - $object->my_str_ends_with_i
ok 52 - $object->my_str_contains
ok 53 - $object->my_str_contains_i
1..53
ok
t/95any.t ..............................
ok 1
ok 2
1..2
ok
t/96foreach.t ..........................
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
1..10
ok
t/97pickrandom.t .......................
# [
#   '3',
#   '4',
#   '2'
# ]
# [
#   '8',
#   '5',
#   '2'
# ]
# [
#   '5',
#   '1',
#   '6'
# ]
# [
#   '2'
# ]
# [
#   '8',
#   '7',
#   '6',
#   '1',
#   '3',
#   '2',
#   '5',
#   '4'
# ]
# [
#   '1',
#   '8',
#   '6'
# ]
# 3
ok 1
1..1
ok
t/98apply.t ............................
ok 1
ok 2
1..2
ok
t/99headtail.t .........................
ok 1 - head(0)
ok 2 - head(3)
ok 3 - head(30)
ok 4 - head(-2)
ok 5 - head(-30)
ok 6 - tail(0)
ok 7 - tail(3)
ok 8 - tail(30)
ok 9 - tail(-2)
ok 10 - tail(-30)
ok 11 - Correct exception
1..11
ok

Test Summary Report
-------------------
t/50objectpad.t                      (Wstat: 65280 (exited 255) Tests: 0 Failed: 0)
   Non-zero exit status: 255
   Parse errors: No plan found in TAP output
Files=102, Tests=9740, 14 wallclock secs ( 0.41 usr  0.16 sys + 12.32 cusr  2.09 csys = 14.98 CPU)
Result: FAIL
Failed 1/102 test programs. 0/9740 subtests failed.
make[1]: *** [Makefile:965: 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/202409/

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 affects, so that this is still visible in the BTS web
page for this package.

Thanks.



More information about the pkg-perl-maintainers mailing list