develooper Front page | perl.perl5.porters | Postings from March 2013

Re: [perl #116971] make test tries to use a different perl than theone being build, /t/lib/croak.t t/lib/common.pl

Thread Previous | Thread Next
From:
Nicholas Clark
Date:
March 6, 2013 12:00
Subject:
Re: [perl #116971] make test tries to use a different perl than theone being build, /t/lib/croak.t t/lib/common.pl
Message ID:
20130306120031.GI3729@plum.flirble.org
On Wed, Feb 27, 2013 at 11:29:56AM -0800, bulk88 wrote:

> I did a make test on a blead and I got a bunch of fails, I have done 
> some debugging on the first one /lib/croak.t (IDC about the others, 
> although the exit status 255s I think/guess are all the same, havn't 
> looked at them) . What I was able to debug (I am not familiar with 
> test.pl and its friends) is that @INC includes "../../lib" "../lib" but 
> winds up with CWD = /t, then does a require, and reaching out of the 
> build dir, and in my case it catches another older blead perl.
> 
> The "../../lib" in @INC I think is coming from
> http://perl5.git.perl.org/perl.git/commit/463cf0628d7a451d99106f7101151d3a9b97fcbf?f=t/lib/common.pl 
> The reason why a require was done is 
> http://perl5.git.perl.org/perl.git/tree/HEAD:/ext/Win32CORE .

I wasn't aware of what Win32CORE does - ie that it autoloads Win32

That has the potential for a lot of surprises in the test suite - calling
Cwd::cwd can end up lazy-loading XS code.

Thanks for the very thorough diagnosis of this. I've pushed a fix for this
particular problem as smoke-me/nicholas/116971

> The simple answer is dont keep a build perl dir in a perl install dir, 
> but I think someone is wrong here if its reaching out of the build dir 
> and trying to load other things on the disk.

Yes, it's wrong that it's doing this, and the offending tests should be
fixed.

> _______________________________________________________________________________
> Test Summary Report
> -------------------
> lib/croak.t                                                     (Wstat: 
> 65280 Te
> sts: 38 Failed: 0)
>    Non-zero exit status: 255
> porting/pod_rules.t                                             (Wstat: 
> 0 Tests:
>   0 Failed: 0)
>    Parse errors: No plan found in TAP output
> ../dist/IO/t/cachepropagate-tcp.t                               (Wstat: 
> 2304 Tes
> ts: 5 Failed: 0)
>    Non-zero exit status: 9
>    Parse errors: Bad plan.  You planned 8 tests but ran 5.
> ../lib/charnames.t                                              (Wstat: 
> 65280 Te
> sts: 17099 Failed: 0)
>    Non-zero exit status: 255
> ../lib/feature.t                                                (Wstat: 
> 65280 Te
> sts: 57 Failed: 0)
>    Non-zero exit status: 255
> ../lib/strict.t                                                 (Wstat: 
> 65280 Te
> sts: 139 Failed: 0)
>    Non-zero exit status: 255
> ../lib/subs.t                                                   (Wstat: 
> 65280 Te
> sts: 11 Failed: 0)
>    Non-zero exit status: 255
> Files=2386, Tests=615859, 2896 wallclock secs (79.44 usr + 25.98 sys = 
> 105.42 CP
> U)
> Result: FAIL
> NMAKE : fatal error U1077: '..\perl.exe' : return code '0x2'
> Stop.

Of the failures you see, I think that this will fix all but
porting/pod_rules.t and ../dist/IO/t/cachepropagate-tcp.t

To try to replicate this, I made a booby-trapped lib directory one up from
my build tree on Linux, with:

$ for file in `find lib -type d`; do mkdir -p ../$file; done
$ for file in `find lib -type f`; do echo CORE::dump >../$file; done

I see the following failures:

Test Summary Report
-------------------
porting/utils.t                                                 (Wstat: 0 Tests: 87 Failed: 79)
  Failed tests:  3-27, 30, 32-47, 49-50, 52-78, 80-87
porting/pod_rules.t                                             (Wstat: 0 Tests: 0 Failed: 0)
  Parse errors: No plan found in TAP output
porting/manifest.t                                              (Wstat: 0 Tests: 10689 Failed: 1)
  Failed test:  10683
../dist/ExtUtils-ParseXS/t/115-avoid-noise.t                    (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=2380, Tests=619592, 133 wallclock secs (84.42 usr 11.06 sys + 583.38 cusr 42.01 csys = 720.87 CPU)
Result: FAIL

So I don't see your ../dist/IO/t/cachepropagate-tcp.t failure, I can
replicate porting/pod_rules.t, and I get a few more.


It's a shame that the NYC hackathon was last weekend, not next weekend, as I
think that finding and fixing these would have made an interesting task for
it.


Nicholas Clark

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About