Skip Menu |

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

Report information
The Basics
Id: 18381
Status: resolved
Priority: 0/
Queue: Test-Warn

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

Bug Information
Severity: (no value)
Broken in: 0.08
Fixed in: (no value)



Subject: Test failure for 0.08
On mandriva cooker, with perl 5.8.8: # Failed test 'Warnings and Carpings mixed, asked only for like warnings' # in t/carped.t at line 24. t/carped...........NOK 1# STDOUT is: # not ok 1 # # not: # ok 1 # # as expected # STDERR is: # # Failed test in t/carped.t at line 23. # # found warning: Warning 1 at t/carped.t line 13. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Carping 2 at t/carped.t line 14 # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Use of uninitialized value in string eq at /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123. # # found carped warning: Carping 3 at t/carped.t line 15 # # found warning: Warning 4 at t/carped.t line 16. # # expected to find warning: (?-xism:1) # # expected to find warning: (?-xism:2) # # expected to find warning: (?-xism:3) # # expected to find warning: (?-xism:4) # # not: # # as expected Curiously, perl -Iblib/lib t/carped.t works perfeclty.
On Mon Mar 27 02:26:10 2006, GROUSSE wrote: Show quoted text
> On mandriva cooker, with perl 5.8.8: > > # # found carped warning: Use of uninitialized value in string eq at > /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123.
Perl 5.8.8 fixes a bug that was supressing warnings unintentionally in certain cases. Sub::Uplevel is one of the modules that has suddenly started generated warnings under 5.8.8. Show quoted text
> > Curiously, perl -Iblib/lib t/carped.t works perfeclty.
Weird.
On Mer. 29 Mar. 2006 22:56:15, DAGOLDEN wrote: Show quoted text
> On Mon Mar 27 02:26:10 2006, GROUSSE wrote:
> > On mandriva cooker, with perl 5.8.8: > > > > # # found carped warning: Use of uninitialized value in string eq at > > /usr/lib/perl5/vendor_perl/5.8.7/Sub/Uplevel.pm line 123.
> > Perl 5.8.8 fixes a bug that was supressing warnings unintentionally in > certain cases. Sub::Uplevel is one of the modules that has suddenly > started generated warnings under 5.8.8. >
> > > > Curiously, perl -Iblib/lib t/carped.t works perfeclty.
> > Weird. >
I have perl 5.8.8 and I've the same installation problem. It may be that the bug wasn't fixed so consistently, and this could be the cause of the weirdness. Diving a bit into Sub::Uplevel, around line 123, it is evident that the relevant sub winds up in the stack until it backtracks a little too much and gets the empty list getting caller (this happens around level 9 or 10, depending on the particular thing that's tested, in the tests). I added some code to print out the value of $caller[0], and it actually is undef in some cases, triggering the warning. OTOH, when the test is called with prove -b t/carped.t the $caller[0] is *still* set to undef in some occasions, but the warning is not emitted (hence I suspect that the bugfix should be strenghtened). Needless to say, the "make test" was successful with the following substitution at line 123 of Sub::Uplevel.pm: < if( $caller[0] eq __PACKAGE__ ) { Show quoted text
> if( defined($caller[0]) && ($caller[0] eq __PACKAGE__) ) {
I'll submit a patch proposal about this. Do you agree about the perl 5.8.8 bugfix hypothesis? Best regards, Flavio.