Subject: | Test failure in t/cmop/methods.t on CentOS5 / perl 5.8.8 |
I'm getting a single test failure on CentOS5 / perl 5.8.8 on Moose 2.1005 and 2.1100-TRIAL, as follows:
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/cmop/methods.t 255 65280 ?? ?? % ??
8 tests and 2 subtests skipped.
Failed 1/398 test scripts, 99.75% okay. -13/18344 subtests failed, 100.07% okay.
hammer:~/Moose-2.1100$ perl -Iblib t/cmop/methods.t
ok 1
ok 2 - ... got the method stub pie
ok 3 - ... got the constant method stub cake
ok 4 - ... our method is not yet blessed
ok 5 - ... we added the method successfully
ok 6 - The object isa Class::MOP::Method
ok 7 - ... got the right name for the method
ok 8 - ... got the right package name for the method
ok 9 - ... Foo->has_method(foo) (defined with Sub::Name)
ok 10 - ... Foo->get_method(foo) == \&foo
ok 11 - ... _method_foo->execute returns "Foo::foo"
ok 12 - ... Foo->foo() returns "Foo::foo"
not ok 13 - can add blessed sub as method
# Failed test 'can add blessed sub as method'
# at t/cmop/methods.t line 102.
# got: 'Can't locate object method "body" via package "Non::Meta::Class" at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/Class/MOP/Mixin/HasMethods.pm line 63.
# '
# expected: undef
ok 14 - ... not Foo->has_method(FOO_CONSTANT) (defined w/ use constant)
ok 15 - ... not Foo->has_method(bling) (defined in main:: using symbol tables (no Sub::Name))
ok 16 - ... Foo->has_method(bar) (defined in Foo)
ok 17 - ... Foo->has_method(baz) (typeglob aliased within Foo)
ok 18 - ... Foo->has_method(baaz) (typeglob aliased within Foo)
ok 19 - ... Foo->has_method(floob) (defined in Foo:: using symbol tables and Sub::Name w/out package name)
ok 20 - ... Foo->has_method(blah) (defined in main:: using fully qualified package name)
ok 21 - ... Foo->has_method(bang) (defined in main:: using symbol tables and Sub::Name)
ok 22 - ... Foo->has_method(evaled_foo) (evaled in main::)
ok 23 - the method 'elk' is defined in OinkyBoinky
ok 24 - the method 'bar' is not defined in OinkyBoinky
ok 25 - but if you look in the inheritence chain then 'bar' does exist
ok 26 - the returned value is a code ref
ok 27 - The object isa Class::MOP::Method
ok 28 - ... body matches CODE ref in package for baaz
ok 29 - The object isa Class::MOP::Method
ok 30 - ... body matches CODE ref in package for bar
ok 31 - The object isa Class::MOP::Method
ok 32 - ... body matches CODE ref in package for baz
ok 33 - The object isa Class::MOP::Method
ok 34 - ... body matches CODE ref in package for floob
ok 35 - The object isa Class::MOP::Method
ok 36 - ... body matches CODE ref in package for blah
ok 37 - The object isa Class::MOP::Method
ok 38 - ... body matches CODE ref in package for bang
not ok 39 - The thing isa Class::MOP::Method
# Failed test 'The thing isa Class::MOP::Method'
# at t/cmop/methods.t line 154.
# The thing isn't defined
Can't call method "body" on an undefined value at t/cmop/methods.t line 158.
# Tests were run but no plan was declared and done_testing() was not seen.
My MOP-skills are lacking, so I haven't tried to debug any further as yet. All runtime dependencies are installed, and I've replicated on two different servers. This test works fine on CentOS6, fwiw.
Cheers,
Gavin