The patch here gets all tests passing for a threaded build on OpenVMS
Alpha 7.3-1, Compaq C 6.5, TCP/IP Services 5.3 ECO 1. It should be
applied to both maintperl and bleadperl. The changes are as follows:
t/run/switchI.t -- can't have a directory with double colons in it
ext/Devel/Peek/Peek.t -- innards of $ENV{PATH} look different on VMS
ext/Filter/t/call.t -- remove extra newline
lib/charnames.t -- now uses runperl
Peter Prymmer (who contributed the call.t fix) also is seeing some other
failures in his environment that I have not been able to reproduce.
Hopefully he will step forward with additional patch(es).
--- ext/Devel/Peek/Peek.t;-0 Mon Dec 2 08:35:16 2002
+++ ext/Devel/Peek/Peek.t Thu Jan 2 00:59:06 2003
@@ -433,8 +433,14 @@
MG_TYPE = PERL_MAGIC_envelem\\(e\\)
(?: MG_FLAGS = 0x01
TAINTEDDIR
-)? MG_LEN = 4
- MG_PTR = $ADDR "(?i:PATH)"
+)? MG_LEN = -?\d+
+ MG_PTR = $ADDR (?:"(?i:PATH)"|=> HEf_SVKEY
+ SV = PV\\($ADDR\\) at $ADDR
+ REFCNT = \d+
+ FLAGS = \\(TEMP,POK,pPOK\\)
+ PV = $ADDR "(?i:PATH)"\\\0
+ CUR = \d+
+ LEN = \d+)
MAGIC = $ADDR
MG_VIRTUAL = &PL_vtbl_taint
MG_TYPE = PERL_MAGIC_taint\\(t\\)');
--- ext/Filter/t/call.t;-0 Sun Dec 8 19:26:42 2002
+++ ext/Filter/t/call.t Tue Dec 31 16:43:30 2002
@@ -806,10 +806,12 @@
my $a = `$Perl "-I." $Inc -e "no ${module6}; print q{ok}"`;
ok(29, ($? >>8) == 0);
+chomp( $a ) if $^O eq 'VMS';
ok(30, $a eq 'ok');
$a = `$Perl "-I." $Inc $filename2`;
ok(31, ($? >>8) == 0);
+chomp( $a ) if $^O eq 'VMS';
ok(32, $a eq 'ok');
}
--- lib/charnames.t;-0 Mon Nov 4 12:57:26 2002
+++ lib/charnames.t Fri Jan 3 17:15:47 2003
@@ -6,6 +6,7 @@
unless(grep /blib/, @INC) {
chdir 't' if -d 't';
@INC = '../lib';
+ require './test.pl';
}
$SIG{__WARN__} = sub { push @WARN, @_ };
}
@@ -292,11 +293,9 @@
print $ali $fil;
close $ali or die "Could not close $alifile: $!";
}
- my $res =
- $^O eq "MSWin32" ? `.\\perl -I../lib $switch $tmpfile 2>&1` :
- $^O eq "NetWare" ? `perl -I../lib $switch $tmpfile 2>&1` :
- $^O eq "MacOS" ? `$^X -I::lib -MMac::err=unix $switch $tmpfile` :
- `./perl -I. -I../lib $switch $tmpfile 2>&1`;
+ my $res = runperl( switches => $switch,
+ progfile => $tmpfile,
+ stderr => 1 );
my $status = $?;
$res =~ s/[\r\n]+$//;
$res =~ s/tmp\d+/-/g; # fake $prog from STDIN
--- t/run/switchI.t;-0 Mon Nov 4 16:53:02 2002
+++ t/run/switchI.t Mon Dec 30 18:21:01 2002
@@ -11,9 +11,15 @@
}
ok(grep { $_ eq 'Bla' } @INC);
-ok(grep { $_ eq 'Foo::Bar' } @INC);
+SKIP: {
+ skip 'Double colons not allowed in dir spec', 1 if $^O eq 'VMS';
+ ok(grep { $_ eq 'Foo::Bar' } @INC);
+}
fresh_perl_is('print grep { $_ eq "Bla2" } @INC', 'Bla2',
{ switches => ['-IBla2'] }, '-I');
-fresh_perl_is('print grep { $_ eq "Foo::Bar2" } @INC', 'Foo::Bar2',
- { switches => ['-IFoo::Bar2'] }, '-I with colons');
+SKIP: {
+ skip 'Double colons not allowed in dir spec', 1 if $^O eq 'VMS';
+ fresh_perl_is('print grep { $_ eq "Foo::Bar2" } @INC', 'Foo::Bar2',
+ { switches => ['-IFoo::Bar2'] }, '-I with colons');
+}