Skip Menu |

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

Report information
The Basics
Id: 64604
Status: open
Priority: 0/
Queue: Test-Aggregate

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

Bug Information
Severity: Critical
Broken in: 0.364
Fixed in: (no value)



Subject: Don't grab at Test::Builder hash keys
Test::Aggregate grabs at an internal Test::Builder hash key rather than going through an accessor. $BUILDER->{Test_Results} can be gotten through $BUILDER->details. Since you only want the current test number, $BUILDER->current_test is fine. Undocumented assumptions about Test::Builder will break in 2.0. --- a/lib/Test/Aggregate.pm +++ b/lib/Test/Aggregate.pm @@ -297,7 +297,7 @@ sub run { # some tests may have been run in BEGIN blocks. This is deprecated and # now warns my $tab = 'Test::Aggregate::Builder'; - $BUILDER->{$tab}{last_test} = @{ $BUILDER->{Test_Results} } || 0; + $BUILDER->{$tab}{last_test} = $BUILDER->current_test || 0; $BUILDER->{$tab}{aggregate_program} = $self->{aggregate_program}; my $current_test = 0;
A reminder that this module will not work with Test::Builder2. Test::Aggregate::Builder violates Test::Builder's encapsulation. All of the hash keys it grabs at have gone away. The way it overrides Test::Builder methods will not work. A feature complete alpha of Test::Builder2 is coming out at the end of the month. This module would better be written using an early Test::Buidler2::EventWatcher which modified test events as they went by.
Yes, this is already causing some fatal problems with how it works, with gems like: not ok 1751 - Error running (t/aggregate/live_engine_response_perlio.t): (Can't dup STDERR: Bad file descriptor at C:/ STRAWBERRY/perl/lib/Test/Builder.pm line 1887.) Hints at that problem (from another project) reside at: http://permalink.gmane.org/gmane.comp.apache.httpd.test.devel/3877 Also, verbosity seems to be forced on to full no matter what I try. Even removing the hard-coded 2 only removes the "X out of X" messages and not the ok messages from TAP itself. Upgrading to critical because this module is already starting to crack.