On Fri, Dec 18, 2009 at 10:35:13PM -0600, Craig A. Berry wrote:

> dist/base/t/fields-5.6.0.......................................FAILED-- 
> no leader found
> dist/base/t/fields-5.8.0.......................................FAILED-- 
> no leader found
> 
> These are failing because they are invoked via C<do file> which uses  
> Perl_pp_require, which on VMS cannot, by default, handle Unix-style  
> filenames with multiple dots.  We used to be protected from this  
> because t/TEST used to convert to native syntax before running a test  
> file.  The easiest solution would be to simply remove these files from  
> core since the tests in them are skipped on Perls later than 5.6 and  
> 5.8, respectively.

Except that (I think) that the plan with distributions in dist/ is that
the perl 5 repository is the master copy for the CPAN distribution. So
removing them from blead would, um, mess that up.

Whilst they wouldn't be as pretty, is there a problem with renaming them
to dist/base/t/fields-5-6-0.t and fields-5-8-0.t ?

> t/porting/diag.................................................FAILED-- 
> unexpected output at test 0
> 
> $ perl [.porting]diag.t
> # blead/av.c
> Can't open blead/av.c: no such file or directory at [.porting]diag.t  
> line 53, <$diagfh> line 5129.
> 1..0
> 
> The home-grown glob does not properly handle relative paths containing  
> C<../>.  So, for example, glob('../*') from the t/ directory gives  
> blead/av.c rather than ../av.c as it should.  Fixing that is some  
> moderate intensity C work in Perl_trim_unixpath in vms/vms.c.  It's a  
> genuine bug but has nothing to do with what this test is testing.

Will it pass if it's changed like this?

diff --git a/t/porting/diag.t b/t/porting/diag.t
index 14c2f84..0241a12 100644
--- a/t/porting/diag.t
+++ b/t/porting/diag.t
@@ -10,8 +10,10 @@ $|=1;
 
 my $make_exceptions_list = ($ARGV[0]||'') eq '--make-exceptions-list';
 
-open my $diagfh, "<", "../pod/perldiag.pod"
-  or die "Can't open ../pod/perldiag.pod: $!";
+chdir '..' or die "Can't chdir ..: $!";
+
+open my $diagfh, "<", "pod/perldiag.pod"
+  or die "Can't open pod/perldiag.pod: $!";
 
 my %entries;
 while (<DATA>) {
@@ -32,12 +34,12 @@ while (<$diagfh>) {
   }
 }
 
-my @todo = ('..');
+my @todo = <*>;
 while (@todo) {
   my $todo = shift @todo;
-  next if $todo ~~ ['../t', '../lib', '../ext', '../dist', '../cpan'];
+  next if $todo ~~ ['t', 'lib', 'ext', 'dist', 'cpan'];
   # opmini.c is just a copy of op.c, so there's no need to check again.
-  next if $todo eq '../opmini.c';
+  next if $todo eq 'opmini.c';
   if (-d $todo) {
     push @todo, glob "$todo/*";
   } elsif ($todo =~ m/\.[ch]$/) {


Nicholas Clark

Reply via email to