Re: VMS test status on [email protected]

Nicholas Clark <[email protected]>
Newsgroups gmane.comp.lang.perl.ports.vms,gmane.comp.lang.perl.perl5.porters
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.