Skip Menu |

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 78187
Status: resolved
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: Nobody in particular
Requestors: DOY [...] cpan.org
paull [...] cv.hp.com
Cc:
AdminCc:

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



Subject: [perl #39055] Patches for 5.8.8 lib/ExtUtils/t failures
Forwarding from the rt.perl queue: ---------------------------------- This is a bug report for perl from paull@cv.hp.com, generated with the help of perlbug 1.35 running under perl v5.8.8. Hello During my build of 5.8.8, I encountered phantom failures among the tests of lib/ExtUtils. I believe the tests are making the assumption that a Makefile.PL cannot be created/closed, then executed to produce a Makefile, all within the 1-second (on many platforms) granularity of filesystem timestamps. In other words, a sufficiently fast box will randomly be able to produce a Makefile from a Makefile.PL, with a matching mtime. The tests probably should not use a '-M < -M' type of comparison, but I chose to insert a 'sleep 2' before the generation instead. Enclosed please find patches for lib/ExtUtils/t/Constant.t lib/ExtUtils/t/PL_FILES.t lib/ExtUtils/t/basic.t lib/ExtUtils/t/installbase.t lib/ExtUtils/t/prereq_print.t lib/ExtUtils/t/recurs.t Best Regards -pal #---------------------------------- cut here ---------------------------------- # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # # Wrapped by paull <paull@cv.hp.com> on Tue May 2 13:41:41 2006 # # This archive contains: # Constant.t.diff PL_FILES.t.diff # basic.t.diff installbase.t.diff # prereq_print.t.diff recurs.t.diff # # Error checking via wc(1) will be performed. # Error checking via sum(1) will be performed. LANG=""; export LANG PATH=/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:$PATH; export PATH EXIT_STATUS=0 if sum -r </dev/null >/dev/null 2>&1 then sumopt='-r' else sumopt='' fi echo x - Constant.t.diff cat >Constant.t.diff <<'@EOF' *** Constant.t Sun Aug 21 09:18:43 2005 --- ../../../../../withPatches/lib/ExtUtils/t/Constant.t Wed Apr 26 15:54:55 2006 *************** *** 110,115 **** --- 110,116 ---- sub build_and_run { my ($tests, $expect, $files) = @_; my $core = $ENV{PERL_CORE} ? ' PERL_CORE=1' : ''; + sleep 2; my @perlout = `$runperl Makefile.PL $core`; if ($?) { print "not ok $realtest # $runperl Makefile.PL failed: $?\n"; @EOF set `sum $sumopt <Constant.t.diff`; if test $1 -ne 30555 then echo ERROR: Constant.t.diff checksum is $1 should be 30555 EXIT_STATUS=1 fi set `wc -lwc <Constant.t.diff` if test $1$2$3 != 1260430 then echo ERROR: wc results of Constant.t.diff are $* should be 12 60 430 EXIT_STATUS=1 fi chmod 664 Constant.t.diff echo x - PL_FILES.t.diff cat >PL_FILES.t.diff <<'@EOF' *** PL_FILES.t Sat May 21 02:43:24 2005 --- ../../../../../withPatches/lib/ExtUtils/t/PL_FILES.t Wed Apr 26 15:57:48 2006 *************** *** 31,36 **** --- 31,37 ---- ok chdir('PL_FILES-Module'); + sleep 2; run(qq{$perl Makefile.PL}); cmp_ok( $?, '==', 0 ); @EOF set `sum $sumopt <PL_FILES.t.diff`; if test $1 -ne 20521 then echo ERROR: PL_FILES.t.diff checksum is $1 should be 20521 EXIT_STATUS=1 fi set `wc -lwc <PL_FILES.t.diff` if test $1$2$3 != 1233274 then echo ERROR: wc results of PL_FILES.t.diff are $* should be 12 33 274 EXIT_STATUS=1 fi chmod 664 PL_FILES.t.diff echo x - basic.t.diff cat >basic.t.diff <<'@EOF' *** basic.t Fri Oct 21 05:00:22 2005 --- ../../../../../withPatches/lib/ExtUtils/t/basic.t Wed Apr 26 15:58:44 2006 *************** *** 47,52 **** --- 47,53 ---- ok( chdir('Big-Dummy'), "chdir'd to Big-Dummy" ) || diag("chdir failed: $!"); + sleep 2; my @mpl_out = run(qq{$perl Makefile.PL "PREFIX=../dummy-install"}); END { rmtree '../dummy-install'; } *************** *** 254,259 **** --- 255,261 ---- # Test NO_META META.yml suppression unlink $meta_yml; ok( !-f $meta_yml, 'META.yml deleted' ); + sleep 2; @mpl_out = run(qq{$perl Makefile.PL "NO_META=1"}); cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) || diag(@mpl_out); my $distdir_out = run("$make distdir"); *************** *** 262,267 **** --- 264,270 ---- # Make sure init_dirscan doesn't go into the distdir + sleep 2; @mpl_out = run(qq{$perl Makefile.PL "PREFIX=../dummy-install"}); cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) || diag(@mpl_out); @EOF set `sum $sumopt <basic.t.diff`; if test $1 -ne 59342 then echo ERROR: basic.t.diff checksum is $1 should be 59342 EXIT_STATUS=1 fi set `wc -lwc <basic.t.diff` if test $1$2$3 != 32124971 then echo ERROR: wc results of basic.t.diff are $* should be 32 124 971 EXIT_STATUS=1 fi chmod 664 basic.t.diff echo x - installbase.t.diff cat >installbase.t.diff <<'@EOF' *** installbase.t Thu Apr 7 01:32:22 2005 --- ../../../../../withPatches/lib/ExtUtils/t/installbase.t Wed Apr 26 15:59:04 2006 *************** *** 35,40 **** --- 35,41 ---- ok( chdir('Big-Dummy'), "chdir'd to Big-Dummy") || diag("chdir failed; $!"); + sleep 2; my @mpl_out = run(qq{$perl Makefile.PL "INSTALLBASE=../dummy-install"}); END { rmtree '../dummy-install'; } @EOF set `sum $sumopt <installbase.t.diff`; if test $1 -ne 53412 then echo ERROR: installbase.t.diff checksum is $1 should be 53412 EXIT_STATUS=1 fi set `wc -lwc <installbase.t.diff` if test $1$2$3 != 1244385 then echo ERROR: wc results of installbase.t.diff are $* should be 12 44 385 EXIT_STATUS=1 fi chmod 664 installbase.t.diff echo x - prereq_print.t.diff cat >prereq_print.t.diff <<'@EOF' *** prereq_print.t Fri Oct 21 05:00:23 2005 --- ../../../../../withPatches/lib/ExtUtils/t/prereq_print.t Wed Apr 26 15:59:52 2006 *************** *** 48,53 **** --- 48,54 ---- diag("chdir failed: $!"); unlink $Makefile; + sleep 2; my $prereq_out = run(qq{$Perl Makefile.PL "PREREQ_PRINT=1"}); ok( !-r $Makefile, "PREREQ_PRINT produces no $Makefile" ); is( $?, 0, ' exited normally' ); *************** *** 61,66 **** --- 62,68 ---- } + sleep 2; $prereq_out = run(qq{$Perl Makefile.PL "PRINT_PREREQ=1"}); ok( !-r $Makefile, "PRINT_PREREQ produces no $Makefile" ); is( $?, 0, ' exited normally' ); @EOF set `sum $sumopt <prereq_print.t.diff`; if test $1 -ne 57779 then echo ERROR: prereq_print.t.diff checksum is $1 should be 57779 EXIT_STATUS=1 fi set `wc -lwc <prereq_print.t.diff` if test $1$2$3 != 2281642 then echo ERROR: wc results of prereq_print.t.diff are $* should be 22 81 642 EXIT_STATUS=1 fi chmod 664 prereq_print.t.diff echo x - recurs.t.diff cat >recurs.t.diff <<'@EOF' *** recurs.t Thu Apr 7 01:32:22 2005 --- ../../../../../withPatches/lib/ExtUtils/t/recurs.t Wed Apr 26 16:00:52 2006 *************** *** 45,50 **** --- 45,51 ---- # Check recursive Makefile building. + sleep 2; my @mpl_out = run(qq{$perl Makefile.PL}); cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) || *************** *** 68,73 **** --- 69,75 ---- # Check NORECURS + sleep 2; @mpl_out = run(qq{$perl Makefile.PL "NORECURS=1"}); cmp_ok( $?, '==', 0, 'Makefile.PL NORECURS=1 exited with zero' ) || *************** *** 93,98 **** --- 95,101 ---- # Check that arguments aren't stomped when they have .. prepended # [rt.perl.org 4345] + sleep 2; @mpl_out = run(qq{$perl Makefile.PL "INST_SCRIPT=cgi"}); cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) || @EOF set `sum $sumopt <recurs.t.diff`; if test $1 -ne 52443 then echo ERROR: recurs.t.diff checksum is $1 should be 52443 EXIT_STATUS=1 fi set `wc -lwc <recurs.t.diff` if test $1$2$3 != 32112808 then echo ERROR: wc results of recurs.t.diff are $* should be 32 112 808 EXIT_STATUS=1 fi chmod 664 recurs.t.diff if test "$EXIT_STATUS" -eq 1 then exit 1 fi exit 0 --- Flags: category=library severity=low --- Site configuration information for perl v5.8.8: Configured by paull at Wed Apr 26 13:31:42 PDT 2006. Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=hpux, osvers=11.11, archname=PA-RISC2.0 uname='hp-ux hpcvipal b.11.11 u 9000785 2003320704 unlimited-user license ' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags =' -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ', optimize='+O2 +Onolimit', cppflags='-Aa -D__STDC_EXT__ -D_HPUX_SOURCE -D_HPUX_SOURCE -Wl,+vnocompatwarnings' ccversion='B.11.X.32509-32512.GP', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='/usr/bin/ld', ldflags ='' libpth=/lib /usr/lib /usr/ccs/lib libs=-lnsl -lnm -lndbm -lmalloc -ldld -lm -lcrypt -lsec -lc perllibs=-lnsl -lnm -lmalloc -ldld -lm -lcrypt -lsec -lc libc=/lib/libc.sl, so=sl, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred ' cccdlflags='+Z', lddlflags='-b +vnocompatwarnings' Locally applied patches: --- @INC for perl v5.8.8: /apps/perl-5.8.8/32bitPA-RISC2.0/lib/5.8.8/PA-RISC2.0 /apps/perl-5.8.8/32bitPA-RISC2.0/lib/5.8.8 /apps/perl-5.8.8/32bitPA-RISC2.0/lib/site_perl/5.8.8/PA-RISC2.0 /apps/perl-5.8.8/32bitPA-RISC2.0/lib/site_perl/5.8.8 /apps/perl-5.8.8/32bitPA-RISC2.0/lib/site_perl . --- Environment for perl v5.8.8: HOME=/home/paull LANG=C LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/apps/perl-5.8.8/32bitPA-RISC2.0/bin:/usr/bin:/usr/bin/X11:/usr/ccs/bin:/usr/contrib/bin:/opt/ansic/bin:/usr/contrib/bin/X11:/home/paull/develBin:/usr/local/bin/X11:/opt/fortran90/bin:/opt/fortran90/contrib/bin:/home/paull/bin:/apps/perl-5.8.8/32bitPA-RISC2.0/ext/bin:. PERL_BADLANG (unset) SHELL=/usr/bin/sh
Wow, a shell archive.  I see this patch is from 2006, think its even relevant?
I claim this is obsolete since it's for Perl 5.8, from 2006. Those tests are not failing now.
The tests are passing all the time including runs on 5.8 with Travis. Closing.