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

[perl #45155] ExtUtils test failures when building 5.9.5 with userelocatableinc

Thread Previous
From:
James E Keenan via RT
Date:
November 23, 2013 14:56
Subject:
[perl #45155] ExtUtils test failures when building 5.9.5 with userelocatableinc
Message ID:
rt-4.0.18-18884-1385218579-1912.45155-15-0@perl.org
On Sun May 26 17:37:49 2013, jkeenan wrote:
> On Tue Sep 04 01:39:24 2007, markfowlercv@googlemail.com wrote:
> > This is a build failure report for perl from mark@twoshortplanks.com
> > generated with the help of perlbug 1.35 running under perl 5.9.5.
> > 
> > 
> > -----------------------------------------------------------------
> > [Please enter your report here]
> > 
> > Okay, so I'm building 5.9.5, and some of ExtUtils tests are failing:
> > 
> > This script reproduces my failure:
> > 
> >    #!/bin/sh
> > 
> >    export VERSION=5.9.5
> >    export PREFIX=/home/mark/myperl
> > 
> >    # extract the perl
> >    rm -rf perl-${VERSION}
> >    gunzip -c perl-${VERSION}.tar.gz | tar -xvf -
> >    cd perl-${VERSION}
> > 
> >    # build it
> >    ./Configure -Dprefix=${PREFIX} -Duserelocatableinc -Dusedevel  -d
> >    make
> >    make test
> > 
> > At the end of the screen I get this:
> > 
> > Failed 2 tests out of 1420, 99.85% okay.
> >            ../lib/ExtUtils/t/INST_PREFIX.t
> >            ../lib/ExtUtils/t/Installed.t
> > 
> > I did this to find out what's going wrong:
> > 
> >    bash$ export DYLD_LIBRARY_PATH=`pwd`
> >    bash$ cd t
> >    bash$ HARNESS_VERBOSE=1 ./perl harness
> > 
> > And the relevant sections are:
> > 
> >    ../lib/ExtUtils/t/INST_PREFIX.................................... 
> > 1..52
> >    ok 1 - setup
> >    ok 2 - chdir'd to Big-Dummy
> >    ok 3
> >    ok 4 - PREFIX set based on INSTALLDIRS
> >    ok 5 - The object isa ExtUtils::MakeMaker
> >    ok 6 - NAME
> >    ok 7 - VERSION
> >    ok 8
> >    ok 9
> >    ok 10
> >    ok 11
> >    ok 12
> >    ok 13 - PREFIX
> >    ok 14 - $(PREFIX) overrides PERLPREFIX
> >    ok 15 - $(PREFIX) overrides SITEPREFIX
> >    ok 16 - $(PREFIX) overrides VENDORPREFIX
> >    ok 17 - PERL_CORE
> >    ok 18 - PERL_SRC
> > 
> >    #   Failed test '$(SITEPREFIX) + sitearch'
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    #                   './../lib/site_perl/5.9.5/darwin-2level'
> >    #     doesn't match '(?-xism:^\$\(SITEPREFIX\))'
> >    not ok 19 - $(SITEPREFIX) + sitearch
> > 
> >    #   Failed test '$(SITEPREFIX) + sitelib'
> >    not ok 20 - $(SITEPREFIX) + sitelib
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    #                   './../lib/site_perl/5.9.5'
> >    #     doesn't match '(?-xism:^\$\(SITEPREFIX\))'
> > 
> >    #   Failed test '$(SITEPREFIX) + sitebin'
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    not ok 21 - $(SITEPREFIX) + sitebin
> >    #                   './../bin'
> >    #     doesn't match '(?-xism:^\$\(SITEPREFIX\))'
> > 
> >    #   Failed test '$(SITEPREFIX) + siteman1dir'
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    not ok 22 - $(SITEPREFIX) + siteman1dir
> >    #                   './../man/man1'
> >    #     doesn't match '(?-xism:^\$\(SITEPREFIX\))'
> > 
> >    #   Failed test '$(SITEPREFIX) + siteman3dir'
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    not ok 23 - $(SITEPREFIX) + siteman3dir
> >    #                   './../man/man3'
> >    #     doesn't match '(?-xism:^\$\(SITEPREFIX\))'
> > 
> >    #   Failed test '$(PERLPREFIX) + archlib'
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    not ok 24 - $(PERLPREFIX) + archlib
> >    #                   './../lib/5.9.5/darwin-2level'
> >    #     doesn't match '(?-xism:^\$\(PERLPREFIX\))'
> > 
> >    #   Failed test '$(PERLPREFIX) + privlib'
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    #                   './../lib/5.9.5'
> >    #     doesn't match '(?-xism:^\$\(PERLPREFIX\))'
> >    not ok 25 - $(PERLPREFIX) + privlib
> >    ok 26 - $(PERLPREFIX) + bin
> > 
> >    #   Failed test '$(PERLPREFIX) + man1dir'
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    not ok 27 - $(PERLPREFIX) + man1dir
> >    #                   './../man/man1'
> >    #     doesn't match '(?-xism:^\$\(PERLPREFIX\))'
> > 
> >    #   Failed test '$(PERLPREFIX) + man3dir'
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    not ok 28 - $(PERLPREFIX) + man3dir
> >    #                   './../man/man3'
> >    #     doesn't match '(?-xism:^\$\(PERLPREFIX\))'
> > 
> >    #   Failed test '$(PERLPREFIX) + script'
> >    #   at ../lib/ExtUtils/t/INST_PREFIX.t line 142.
> >    not ok 29 - $(PERLPREFIX) + script
> >    #                   './'
> >    #     doesn't match '(?-xism:^\$\(PERLPREFIX\))'
> >    ok 30 # skip $Config{usevendorprefix} not set
> >    ok 31 # skip $Config{usevendorprefix} not set
> >    ok 32 # skip $Config{usevendorprefix} not set
> >    ok 33 # skip $Config{usevendorprefix} not set
> >    ok 34 # skip $Config{usevendorprefix} not set
> >    ok 35
> >    ok 36
> >    ok 37 - installvendorman1dir (in %Config) not modified
> >    ok 38 - installvendorman3dir (not in %Config) set
> >    ok 39
> >    ok 40
> >    ok 41
> >    ok 42
> >    ok 43
> >    ok 44
> >    ok 45
> >    ok 46
> >    ok 47
> >    ok 48
> >    ok 49
> >    ok 50
> >    ok 51
> >    ok 52 - teardown
> >    # Looks like you failed 10 tests of 52.
> >    dubious
> >    	Test returned status 10 (wstat 2560, 0xa00)
> >    DIED. FAILED tests 19-25, 27-29
> >    	Failed 10/52 tests, 80.77% okay (less 5 skipped tests: 37 okay,  
> > 71.15%)
> > 
> > And
> > 
> >    ../lib/ExtUtils/t/Installed...................................... 
> > 1..46
> >    ok 1 - use ExtUtils::Installed;
> >    ok 2 - _is_prefix() should match valid path prefix
> >    ok 3 - ... should not match wrong prefix
> >    ok 4 - _is_type() should be true for type of "all"
> >    ok 5 - ... should find doc file in man1dir
> >    ok 6 - ... but not prog file in man1dir
> >    ok 7 - ... should find doc file in man3dir
> >    ok 8 - ... but not prog file in man3dir
> >    ok 9 - ... should find prog file under .../..
> >    ok 10 - ... should not find doc file outside path
> >    ok 11 - ... nor prog file outside path
> >    ok 12 - ... nor other type anywhere
> >    ok 13 - _is_under() should return true with no dirs
> >    ok 14 - ... should find no file not under dirs
> >    ok 15 - ... should find file under dir
> >    ok 16
> >    ok 17
> >    ok 18
> >    ok 19 - The object isa ExtUtils::Installed
> >    ok 20 - The object isa ExtUtils::Packlist
> >    ok 21 - new() should set Perl version from %Config
> >    ok 22 - new() should find modules with .packlists
> >    ok 23 - The object isa ExtUtils::Packlist
> >    ok 24 - ... should find version in modules
> >    ok 25 - modules() should return sorted keys
> >    ok 26 - modules() in scalar context
> >    ok 27 - files() should croak given bad modname
> >    ok 28 - files() should croak given bad type
> > 
> >    #   Failed test '... should find doc file under given dir'
> >    #   at ../lib/ExtUtils/t/Installed.t line 160.
> >    #          got: '0'
> >    #     expected: '1'
> >    not ok 29 - ... should find doc file under given dir
> > 
> >    #   Failed test '... checking file name'
> >    not ok 30 - ... checking file name
> >    #   at ../lib/ExtUtils/t/Installed.t line 161.
> >    #          got: '0'
> >    #     expected: '1'
> > 
> >    #   Failed test '... should find all doc files with no dir'
> >    not ok 31 - ... should find all doc files with no dir
> >    #   at ../lib/ExtUtils/t/Installed.t line 166.
> >    #          got: '0'
> >    #     expected: '2'
> >    ok 32 - ... should find no doc files given wrong dirs
> >    ok 33 - ... should find doc file in correct dir
> >    ok 34 - ... checking file name
> >    ok 35 - ... should find all files with no type specified
> >    ok 36 - directories() should return no dirs if no files found
> > 
> >    #   Failed test '... should find all files files() would'
> >    #   at ../lib/ExtUtils/t/Installed.t line 185.
> >    not ok 37 - ... should find all files files() would
> >    #          got: '0'
> >    #     expected: '2'
> >    ok 38 - ... should find all files files() would, again
> >    ok 39 - ... should sort output
> >    not ok 40 - directory_tree() should report intermediate dirs to  
> > those requested
> > 
> >    #   Failed test 'directory_tree() should report intermediate dirs  
> > to those requested'
> >    #   at ../lib/ExtUtils/t/Installed.t line 202.
> >    #          got: '0'
> >    #     expected: '3'
> >    ok 41 - validate() should croak when asked about uninstalled module
> >    ok 42 - packlist() should croak when asked about uninstalled module
> >    ok 43 - version() should croak when asked about uninstalled module
> >    ok 44 - validate() should return results of packlist validate() call
> >    ok 45 - packlist() should report installed mod packlist
> >    ok 46 - version() should report installed mod version
> >    # Looks like you failed 5 tests of 46.
> >    dubious
> >    	Test returned status 5 (wstat 1280, 0x500)
> >    DIED. FAILED tests 29-31, 37, 40
> >    	Failed 5/46 tests, 89.13% okay
> > 
> 
> Mark,
> 
> Tonight I configured Perl (blead) with the following arguments, which I
> believe closely track those reported above:
> 
> #####
> sh ./Configure -des -Dusedevel -Dprefix=/home/jkeenan/tmp
> -Duserelocatableinc
> #####
> 
> I then built and tested.  This was on our dromedary server
> (linux,x86_64).  All tests passed, which suggests that this ticket may
> be closable.
> 
> Thank you very much.
> Jim Keenan

Excerpts from #p5p today:

09:38 kid51 Since we're on the subject, does anyone agree with me that https://rt.perl.org/Ticket/Display.html?id=45155 is closable?
09:38 dipsy [ Bug #45155 for perl5: ExtUtils test failures when building 5.9.5 with userelocatableinc ] 
09:41 Nicholas kid51: yes, but it was almost certainly relevant that the tester was on darwin, not linux
09:42 kid51 Nicholas:  why is that?  Should I try a build/test on Darwin in addition to Dromedary before closing?
09:44 Nicholas because the relocatable inc code is strongly dependant on platform-specific code to figure out how to set $^X to an absolute path
09:45 Nicholas I'd guess that the fix was commit ae60cb464cebf89579ec0ff91db8b792b2f1e7cd
09:45 Nicholas which makes $^X absolute on darwin
09:45 Nicholas I wasn't aware of that ticket being open when I wrote that code
09:47 kid51 Testing to confirm.
09:48 Nicholas thanks

I configured on a recent Darwin the same way I did on dromedary.  All tests PASSed.

For the record, here's the commit Nick was referring to:

commit ae60cb464cebf89579ec0ff91db8b792b2f1e7cd
Author: Nicholas Clark <nick@ccl4.org>
Date:   Wed Sep 21 15:33:09 2011 +0100

    Where available, use _NSGetExecutablePath() to make $^X absolute.
    
    In Configure, check whether _NSGetExecutablePath() can be used to find the
    absolute pathname of the executable. If so, set usensgetexecutablepath in
    config.sh and USE_NSGETEXECUTABLEPATH in config.h. If this is set, then use
    this approach in S_set_caret_X() to canonicalise $^X as an absolute
    path. This approach works on OS X, and possible on other platforms that
    use dyld.

Marking ticket Resolved.

Thank you very much.
Jim Keenan

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=45155

Thread Previous


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