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