Skip Menu |

This queue is for tickets about the Test-Class CPAN distribution.

Report information
The Basics
Id: 96951
Status: resolved
Priority: 0/
Queue: Test-Class

People
Owner: Nobody in particular
Requestors: KENTNL [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in:
  • 0.41
  • 0.42
  • 0.43
Fixed in: (no value)



Subject: fail2.t , runtests_die.t ,runtests_return.t # all fail tests on 5.18.2

https://gist.github.com/kentfredric/900fee31a2d8df76384b

I'm not sure why this is triggering, I've just hit it checking things for downstream and I can't see any obvious dependency interaction causing problems.

Its very rare, but I seem to get it every time so it must be something about ENV.

Other similar failing reports for analysis:

0.42 freebsd on 5.12 : http://www.cpantesters.org/cpan/report/78419994-f1eb-11e3-bec8-7f69e0bfc7aa
0.41 cygwin on 5.19: http://www.cpantesters.org/cpan/report/39da3213-6c07-1014-8c92-2542530ee552
 

Though it may be informative to know that I am running the tests in a non-perl toolchain environment, and it DOES special things with IO redirection to STDOUT/STDERR ( logging and multiplexing output of several processes ) in C/C++ , such that any hard-coded assumptions about numbers file descriptors use might be false, which might be a contributing factor.
 

Subject: err.txt
t/00-load.t .................... 1/1 # Testing Test::Class::Load 0.43, Perl 5.018002, /usr/bin/perl5.18.2 t/00-load.t .................... ok t/20-load-classes.t ............ ok t/21-load-subclassed.t ......... ok t/Tests.t ...................... ok t/_new.t ....................... ok t/bad-autoloads.t .............. skipped: need Contextual::Return t/bailout.t .................... ok t/builder.t .................... ok t/compile.t .................... ok t/current_method.t ............. ok t/diag_on_failure.t ............ ok t/die-in-setup.t ............... ok t/die_before_plan.t ............ ok t/expected_tests.t ............. ok t/fail1.t ...................... ok t/fail2.t ...................... 1/2 # Failed test 'fail2' # at t/fail2.t line 38. # STDOUT is: # not ok 1 - undef isa 'Object' # not ok 2 - cannot create Objects # # not: # (?^:not ok 1 - (?:The thing|undef) isa '?Object'?\n) # not ok 2 - cannot create Objects # # as expected # STDERR is: # # Failed test 'undef isa 'Object'' # # at t/fail2.t line 18. # # (in Object::Test->_test_new) # # undef isn't defined # # Failed test 'cannot create Objects' # # at t/fail2.t line 18. # # (in Object::Test->_test_new) # # not: # /#\s+Failed\ test.*?\n?.*?at\ t\/fail2\.t line 18.*\n?/ # # (in Object::Test->_test_new) # (?^:#\s+(?:The thing|undef) isn't defined\n) # /#\s+Failed\ test.*?\n?.*?at\ t\/fail2\.t line 18.*\n?/ # # (in Object::Test->_test_new) # # as expected t/fail2.t ...................... Failed 1/2 subtests t/fail3.t ...................... ok t/filter.t ..................... ok t/filter_bad_filter.t .......... ok t/filter_fixtures.t ............ ok t/filter_fixtures_only.t ....... ok t/filter_multiple.t ............ ok t/header.t ..................... ok t/late_header.t ................ ok t/methodinfo.t ................. ok t/named_test.t ................. ok t/num_method_tests.t ........... ok t/num_tests.t .................. ok t/override.t ................... ok t/rt15870.t .................... ok t/rt17264.t .................... ok t/run_all_tests.t .............. ok t/runtests.t ................... ok t/runtests_die.t ............... 1/1 # Failed test 'early die handled' # at t/runtests_die.t line 34. # STDOUT is: # not ok 1 - undef isa 'Object' # not ok 2 - test_object died (could not create object) # # not: # (?^:not ok 1 - (?:The thing|undef) isa '?Object'?\n) # not ok 2 - test_object died (could not create object) # # as expected # STDERR is: # # Failed test 'undef isa 'Object'' # # at t/runtests_die.t line 15. # # (in Foo->test_object) # # undef isn't defined # # Failed test 'test_object died (could not create object)' # # at t/runtests_die.t line 33. # # (in Foo->test_object) # # not: # /#\s+Failed\ test.*?\n?.*?at\ t\/runtests_die\.t line 15.*\n?/ # # (in Foo->test_object) # (?^:# (?:The thing|undef) isn't defined\n) # /#\s+Failed\ test.*?\n?.*?at\ t\/runtests_die\.t line 33.*\n?/ # # (in Foo->test_object) # # as expected t/runtests_die.t ............... Failed 1/1 subtests t/runtests_die_empty.t ......... ok t/runtests_die_nearlyempty.t ... ok t/runtests_extra.t ............. ok t/runtests_noplan.t ............ ok t/runtests_of.t ................ ok t/runtests_result.t ............ ok t/runtests_return.t ............ 1/2 # Failed test 'early return handled (fail)' # at t/runtests_return.t line 42. # STDERR is: # # Failed test '(Bar::darwin_only returned before plan complete)' # # at /tmp/portage/dev-perl-Test-Class-0.430.0/work/Test-Class-0.43/blib/lib/Test/Class.pm line 392. # # (in Bar->darwin_only) # # Failed test '(Bar::darwin_only returned before plan complete)' # # at /tmp/portage/dev-perl-Test-Class-0.430.0/work/Test-Class-0.43/blib/lib/Test/Class.pm line 392. # # (in Bar->darwin_only) # # not: # (?^s:.*in Bar->darwin_only.*) # # as expected t/runtests_return.t ............ Failed 1/2 subtests t/runtests_trailing.t .......... ok t/runtests_with_wrong_class.t .. ok t/show_plan_in_shutdown.t ...... ok t/skip1.t ...................... ok t/skip2.t ...................... ok t/skip_class_reason.t .......... ok t/skip_empty_classes.t ......... 1/5 # # Bar::Test->the_test t/skip_empty_classes.t ......... ok t/spaces.t ..................... ok t/startup.t .................... ok t/startup_that_dies.t .......... ok t/test_classes.t ............... ok t/test_deep.t .................. ok t/test_method.t ................ ok t/test_verbose.t ............... ok t/todo.t ....................... # Test::More: 0.9805 t/todo.t ....................... ok Test Summary Report ------------------- t/fail2.t (Wstat: 0 Tests: 2 Failed: 1) Failed test: 1 t/runtests_die.t (Wstat: 0 Tests: 1 Failed: 1) Failed test: 1 t/runtests_return.t (Wstat: 0 Tests: 2 Failed: 1) Failed test: 2 Files=56, Tests=186, 5 wallclock secs ( 0.27 usr 0.09 sys + 4.30 cusr 0.56 csys = 5.22 CPU) Result: FAIL Failed 3/56 test programs. 3/186 subtests failed.

K. My theories about it  being installchain related seem unfounded. Having the same problem on the same box with cpanm now.
 

Buh.

Looks like a newer Test::Simple is required.

 

Checking if you have Test::More 0.78 ... Yes (0.98_05)

Forcing an update of Test::Simple to latest == problem solved.


And joyfully, it looks that only *two* development releases were a problem:

0.98_05 and 0.98_06 ,

0.98_04 doesn't suffer the problem
0.99 forces a self update due to outdated test builder
0.99_01 doesn't have the problem.

And I happen to have 0.98_05 installed for some dumb reason.

 


 

Subject: fail2.t , runtests_die.t ,runtests_return.t # all fail tests on Test::More <= 0.99
Yup, tests fail with Test::More 0.99 and pass with Test::More 1.001002. Released 0.45 with a prereq bump. Nice find, and thanks!