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