PERFORCE change 11198 for review
[email protected] (Chris Nandor) Sat, 7 Jul 2001 17:56:35 -0400
| Newsgroups | perl.perl5.changes.mac |
|---|---|
| Message-ID | <p05100302b76d35db0a02@[10.0.1.177]> |
Change 11198 by pudge@pudge-mobile on 2001/07/07 20:44:12
Portability fixes for a lot of tests, especially IO-related
tests, and warnings, and the harness script.
Affected files ...
... //depot/maint-5.6/macperl/t/harness#2 edit
... //depot/maint-5.6/macperl/t/io/argv.t#2 edit
... //depot/maint-5.6/macperl/t/io/dup.t#2 edit
... //depot/maint-5.6/macperl/t/io/fs.t#2 edit
... //depot/maint-5.6/macperl/t/io/inplace.t#2 edit
... //depot/maint-5.6/macperl/t/io/iprefix.t#2 edit
... //depot/maint-5.6/macperl/t/io/open.t#2 edit
... //depot/maint-5.6/macperl/t/io/openpid.t#2 edit
... //depot/maint-5.6/macperl/t/lib/filepath.t#2 edit
... //depot/maint-5.6/macperl/t/lib/findbin.t#2 edit
... //depot/maint-5.6/macperl/t/lib/io_dup.t#2 edit
... //depot/maint-5.6/macperl/t/lib/socket.t#2 edit
... //depot/maint-5.6/macperl/t/op/die_exit.t#3 edit
... //depot/maint-5.6/macperl/t/op/misc.t#3 edit
... //depot/maint-5.6/macperl/t/op/read.t#2 edit
... //depot/maint-5.6/macperl/t/op/readdir.t#2 edit
... //depot/maint-5.6/macperl/t/op/runlevel.t#2 edit
... //depot/maint-5.6/macperl/t/op/stat.t#2 edit
... //depot/maint-5.6/macperl/t/op/subst_wamp.t#2 edit
... //depot/maint-5.6/macperl/t/op/taint.t#2 edit
... //depot/maint-5.6/macperl/t/pragma/diagnostics.t#2 edit
... //depot/maint-5.6/macperl/t/pragma/subs.t#2 edit
... //depot/maint-5.6/macperl/t/pragma/warn/doio#2 edit
... //depot/maint-5.6/macperl/t/pragma/warn/mg#2 edit
... //depot/maint-5.6/macperl/t/pragma/warn/op#2 edit
... //depot/maint-5.6/macperl/t/pragma/warn/pp_sys#2 edit
... //depot/maint-5.6/macperl/t/pragma/warnings.t#2 edit
Differences ...
==== //depot/maint-5.6/macperl/t/harness#2 (xtext) ====
Index: perl/t/harness
--- perl/t/harness.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/harness Sat Jul 7 17:50:08 2001
@@ -7,6 +7,7 @@
chdir 't' if -d 't';
unshift @INC, '../lib';
$ENV{PERL5LIB} = '../lib'; # so children will see it too
+ $ENV{HARNESS_NOTTY} = 1 if $^O eq 'MacOS';
}
use lib '../lib';
==== //depot/maint-5.6/macperl/t/io/argv.t#2 (xtext) ====
Index: perl/t/io/argv.t
--- perl/t/io/argv.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/io/argv.t Sat Jul 7 17:50:08 2001
@@ -18,6 +18,9 @@
if ($^O eq 'MSWin32') {
$x = `.\\perl -e "while (<>) {print \$.,\$_;}" Io_argv1.tmp Io_argv1.tmp`;
}
+elsif ($^O eq 'MacOS') {
+ $x = `$^X -e 'while (<>) {print \$.,\$_;}' Io_argv1.tmp Io_argv1.tmp`;
+}
else {
$x = `./perl -e 'while (<>) {print \$.,\$_;}' Io_argv1.tmp Io_argv1.tmp`;
}
@@ -26,6 +29,9 @@
if ($^O eq 'MSWin32') {
$x = `.\\perl -le "print 'foo'" | .\\perl -e "while (<>) {print \$_;}" Io_argv1.tmp -`;
}
+elsif ($^O eq 'MacOS') {
+ $x = `echo foo|$^X -e 'while (<>) {print $_;}' Io_argv1.tmp -`;
+}
else {
$x = `echo foo|./perl -e 'while (<>) {print $_;}' Io_argv1.tmp -`;
}
@@ -34,6 +40,9 @@
if ($^O eq 'MSWin32') {
$x = `.\\perl -le "print 'foo'" |.\\perl -e "while (<>) {print \$_;}"`;
}
+elsif ($^O eq 'MacOS') {
+ $x = `echo foo|$^X -e 'while (<>) {print $_;}'`;
+}
else {
$x = `echo foo|./perl -e 'while (<>) {print $_;}'`;
}
==== //depot/maint-5.6/macperl/t/io/dup.t#2 (xtext) ====
Index: perl/t/io/dup.t
--- perl/t/io/dup.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/io/dup.t Sat Jul 7 17:50:08 2001
@@ -21,6 +21,10 @@
print `echo ok 4`;
print `echo ok 5 1>&2`; # does this work?
}
+elsif ($^O eq 'MacOS') {
+ system 'echo ok 4';
+ system 'echo ok 5'; # no real way to do this, i think
+}
else {
system 'echo ok 4';
system 'echo ok 5 1>&2';
@@ -32,8 +36,9 @@
open(STDOUT,">&dupout");
open(STDERR,">&duperr");
-if ($^O eq 'MSWin32') { print `type Io.dup` }
-else { system 'cat Io.dup' }
+if ($^O eq 'MSWin32') { print `type Io.dup` }
+elsif ($^O eq 'MacOS') { system 'catenate Io.dup' }
+else { system 'cat Io.dup' }
unlink 'Io.dup';
print STDOUT "ok 6\n";
==== //depot/maint-5.6/macperl/t/io/fs.t#2 (xtext) ====
Index: perl/t/io/fs.t
--- perl/t/io/fs.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/io/fs.t Sat Jul 7 17:50:08 2001
@@ -8,7 +8,9 @@
}
use Config;
+use File::Spec::Functions;
+$Is_MacOS = $^O eq 'MacOS';
$Is_Dosish = ($^O eq 'MSWin32' or $^O eq 'dos' or
$^O eq 'os2' or $^O eq 'mint');
@@ -21,25 +23,26 @@
$wd = (($^O eq 'MSWin32') ? `cd` : `pwd`);
chop($wd);
-if ($^O eq 'MSWin32') { `rmdir /s /q tmp 2>nul`; `mkdir tmp`; }
+if ($^O eq 'MSWin32') { `rmdir /s /q tmp 2>nul`; `mkdir tmp`; }
+elsif ($^O eq 'MacOS') { rmdir "tmp"; mkdir "tmp"; }
else { `rm -f tmp 2>/dev/null; mkdir tmp 2>/dev/null`; }
-chdir './tmp';
+chdir catdir(curdir(), 'tmp');
`/bin/rm -rf a b c x` if -x '/bin/rm';
umask(022);
-if ($^O eq 'MSWin32') { print "ok 1 # skipped: bogus umask()\n"; }
+if ($^O eq 'MSWin32' || $Is_MacOS) { print "ok 1 # skipped: bogus umask()\n"; }
elsif ((umask(0)&0777) == 022) {print "ok 1\n";} else {print "not ok 1\n";}
open(fh,'>x') || die "Can't create x";
close(fh);
open(fh,'>a') || die "Can't create a";
close(fh);
-if ($Is_Dosish) {print "ok 2 # skipped: no link\n";}
+if ($Is_Dosish || $Is_MacOS) {print "ok 2 # skipped: no link\n";}
elsif (eval {link('a','b')}) {print "ok 2\n";}
else {print "not ok 2\n";}
-if ($Is_Dosish) {print "ok 3 # skipped: no link\n";}
+if ($Is_Dosish || $Is_MacOS) {print "ok 3 # skipped: no link\n";}
elsif (eval {link('b','c')}) {print "ok 3\n";}
else {print "not ok 3\n";}
@@ -52,7 +55,7 @@
{print "ok 4\n";}
else {print "not ok 4\n";}
-if ($^O eq 'amigaos' || $Is_Dosish)
+if ($^O eq 'amigaos' || $Is_Dosish || $Is_MacOS)
{print "ok 5 # skipped: no link\n";}
elsif (($mode & 0777) == 0666)
{print "ok 5\n";}
@@ -63,7 +66,7 @@
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
$blksize,$blocks) = stat('c');
-if ($Is_Dosish) {print "ok 7 # skipped: no link\n";}
+if ($Is_Dosish || $Is_MacOS) {print "ok 7 # skipped: no link\n";}
elsif (($mode & 0777) == $newmode) {print "ok 7\n";}
else {print "not ok 7\n";}
@@ -73,23 +76,23 @@
$newmode = 0666;
}
-if ($Is_Dosish) {print "ok 8 # skipped: no link\n";}
+if ($Is_Dosish || $Is_MacOS) {print "ok 8 # skipped: no link\n";}
elsif ((chmod $newmode,'c','x') == 2) {print "ok 8\n";}
else {print "not ok 8\n";}
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
$blksize,$blocks) = stat('c');
-if ($Is_Dosish) {print "ok 9 # skipped: no link\n";}
+if ($Is_Dosish || $Is_MacOS) {print "ok 9 # skipped: no link\n";}
elsif (($mode & 0777) == $newmode) {print "ok 9\n";}
else {print "not ok 9\n";}
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
$blksize,$blocks) = stat('x');
-if ($Is_Dosish) {print "ok 10 # skipped: no link\n";}
+if ($Is_Dosish || $Is_MacOS) {print "ok 10 # skipped: no link\n";}
elsif (($mode & 0777) == $newmode) {print "ok 10\n";}
else {print "not ok 10\n";}
-if ($Is_Dosish) {print "ok 11 # skipped: no link\n"; unlink 'b','x'; }
+if ($Is_Dosish || $Is_MacOS) {print "ok 11 # skipped: no link\n"; unlink 'b','x'; }
elsif ((unlink 'b','x') == 2) {print "ok 11\n";}
else {print "not ok 11\n";}
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
@@ -111,7 +114,7 @@
$blksize,$blocks) = stat('b');
if ($^O eq 'MSWin32') { print "ok 17 # skipped: bogus (stat)[1]\n"; }
elsif ($ino) {print "ok 17\n";} else {print "not ok 17\n";}
-if ($wd =~ m#/afs/# || $^O eq 'amigaos' || $^O eq 'dos' || $^O eq 'MSWin32')
+if ($wd =~ m#/afs/# || $^O eq 'amigaos' || $^O eq 'dos' || $^O eq 'MSWin32' || $Is_MacOS)
{print "ok 18 # skipped: granularity of the filetime\n";}
elsif ($atime == 500000000 && $mtime == 500000000 + $delta)
{print "ok 18\n";}
==== //depot/maint-5.6/macperl/t/io/inplace.t#2 (xtext) ====
Index: perl/t/io/inplace.t
--- perl/t/io/inplace.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/io/inplace.t Sat Jul 7 17:50:08 2001
@@ -19,6 +19,12 @@
`MCR []perl. -le "print 'foo'" > ./.b`;
`MCR []perl. -le "print 'foo'" > ./.c`;
}
+elsif ($^O eq 'MacOS') {
+ $CAT = "$^X -e \"print<>\"";
+ `$^X -le "print 'foo'" > .a`;
+ `$^X -le "print 'foo'" > .b`;
+ `$^X -le "print 'foo'" > .c`;
+}
else {
$CAT = 'cat';
`echo foo | tee .a .b .c`;
==== //depot/maint-5.6/macperl/t/io/iprefix.t#2 (xtext) ====
Index: perl/t/io/iprefix.t
--- perl/t/io/iprefix.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/io/iprefix.t Sat Jul 7 17:50:08 2001
@@ -19,6 +19,12 @@
`MCR []perl. -le "print 'foo'" > ./.b`;
`MCR []perl. -le "print 'foo'" > ./.c`;
}
+elsif ($^O eq 'MacOS') {
+ $CAT = "$^X -e \"print<>\"";
+ `$^X -le "print 'foo'" > .a`;
+ `$^X -le "print 'foo'" > .b`;
+ `$^X -le "print 'foo'" > .c`;
+}
else {
$CAT = 'cat';
`echo foo | tee .a .b .c`;
==== //depot/maint-5.6/macperl/t/io/open.t#2 (xtext) ====
Index: perl/t/io/open.t
--- perl/t/io/open.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/io/open.t Sat Jul 7 17:50:08 2001
@@ -8,8 +8,9 @@
# $RCSfile$
$| = 1;
use warnings;
-$Is_VMS = $^O eq 'VMS';
-$Is_Dos = $^O eq 'dos';
+$Is_MacOS = $^O eq 'MacOS';
+$Is_VMS = $^O eq 'VMS';
+$Is_Dos = $^O eq 'dos';
print "1..66\n";
@@ -100,7 +101,7 @@
}
# 24..26
-if ($Is_VMS) {
+if ($Is_VMS || $Is_MacOS) {
for (24..26) { print "ok $_ # skipped: not Unix fork\n"; $test++;}
}
else {
@@ -116,7 +117,7 @@
}
# 27..30
-if ($Is_VMS) {
+if ($Is_VMS || $Is_MacOS) {
for (27..30) { print "ok $_ # skipped: not Unix fork\n"; $test++;}
}
else {
@@ -224,7 +225,7 @@
}
# 56..58
-if ($Is_VMS) {
+if ($Is_VMS || $Is_MacOS) {
for (56..58) { print "ok $_ # skipped: not Unix fork\n"; $test++;}
}
else {
@@ -240,7 +241,7 @@
}
# 59..62
-if ($Is_VMS) {
+if ($Is_VMS || $Is_MacOS) {
for (59..62) { print "ok $_ # skipped: not Unix fork\n"; $test++;}
}
else {
==== //depot/maint-5.6/macperl/t/io/openpid.t#2 (xtext) ====
Index: perl/t/io/openpid.t
--- perl/t/io/openpid.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/io/openpid.t Sat Jul 7 17:50:08 2001
@@ -10,7 +10,7 @@
BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
- if ($^O eq 'dos') {
+ if ($^O eq 'dos' || $^O eq 'MacOS') {
print "1..0 # Skip: no multitasking\n";
exit 0;
}
==== //depot/maint-5.6/macperl/t/lib/filepath.t#2 (xtext) ====
Index: perl/t/lib/filepath.t
--- perl/t/lib/filepath.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/lib/filepath.t Sat Jul 7 17:50:08 2001
@@ -5,6 +5,7 @@
@INC = '../lib';
}
+use File::Spec::Functions;
use File::Path;
use strict;
@@ -16,13 +17,16 @@
# first check for stupid permissions second for full, so we clean up
# behind ourselves
for my $perm (0111,0777) {
- mkpath("foo/bar");
- chmod $perm, "foo", "foo/bar";
+ my $one = catdir(curdir(), "foo");
+ my $two = catdir(curdir(), "foo", "bar");
+
+ mkpath($two);
+ chmod $perm, $one, $two;
- print "not " unless -d "foo" && -d "foo/bar";
+ print "not " unless -d $one && -d $two;
print "ok ", ++$count, "\n";
- rmtree("foo");
- print "not " if -e "foo";
+ rmtree($one);
+ print "not " if -e $one;
print "ok ", ++$count, "\n";
}
==== //depot/maint-5.6/macperl/t/lib/findbin.t#2 (xtext) ====
Index: perl/t/lib/findbin.t
--- perl/t/lib/findbin.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/lib/findbin.t Sat Jul 7 17:50:08 2001
@@ -9,5 +9,6 @@
use FindBin qw($Bin);
-print "not " unless $Bin =~ m,t[/.]lib\]?$,;
+my $match = $^O eq 'MacOS' ? qr/t:lib:$/ : qr,t[/.]lib\]?$,;
+print "not " unless $Bin =~ $match;
print "ok 1\n";
==== //depot/maint-5.6/macperl/t/lib/io_dup.t#2 (xtext) ====
Index: perl/t/lib/io_dup.t
--- perl/t/lib/io_dup.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/lib/io_dup.t Sat Jul 7 17:50:08 2001
@@ -43,6 +43,10 @@
print `echo ok 4`;
print `echo ok 5 1>&2`; # does this *really* work?
}
+elsif ($^O eq 'MacOS') {
+ system 'echo ok 4';
+ system 'echo ok 5'; # no real way to do this, i think
+}
else {
system 'echo ok 4';
system 'echo ok 5 1>&2';
@@ -54,8 +58,9 @@
$stdout->fdopen($dupout,"w");
$stderr->fdopen($duperr,"w");
-if ($^O eq 'MSWin32') { print `type Io.dup` }
-else { system 'cat Io.dup' }
+if ($^O eq 'MSWin32') { print `type Io.dup` }
+elsif ($^O eq 'MacOS') { system 'catenate Io.dup' }
+else { system 'cat Io.dup' }
unlink 'Io.dup';
print STDOUT "ok 6\n";
==== //depot/maint-5.6/macperl/t/lib/socket.t#2 (xtext) ====
Index: perl/t/lib/socket.t
--- perl/t/lib/socket.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/lib/socket.t Sat Jul 7 17:50:08 2001
@@ -18,7 +18,9 @@
if (socket(T,PF_INET,SOCK_STREAM,6)) {
print "ok 1\n";
- if (connect(T,pack_sockaddr_in(7,inet_aton("localhost")))){
+ # localhost won't always work on Mac OS
+ my $host = $^O eq 'MacOS' ? "127.0.0.1" : "localhost";
+ if (connect(T,pack_sockaddr_in(7,inet_aton($host)))){
print "ok 2\n";
print "# Connected to " .
==== //depot/maint-5.6/macperl/t/op/die_exit.t#3 (xtext) ====
==== //depot/maint-5.6/macperl/t/op/misc.t#3 (xtext) ====
Index: perl/t/op/misc.t
--- perl/t/op/misc.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/op/misc.t Sat Jul 7 17:50:08 2001
@@ -34,7 +34,8 @@
if ($^O eq 'MSWin32') {
$results = `.\\perl -I../lib $switch $tmpfile 2>&1`;
- } elsif ($^O eq 'MacOS') {
+ }
+ elsif ($^O eq 'MacOS') {
$results = `$^X -I::lib $switch $tmpfile`;
}
else {
@@ -96,7 +97,7 @@
########
eval {sub bar {print "In bar";}}
########
-system './perl -ne "print if eof" /dev/null'
+system './perl -ne "print if eof" /dev/null' unless $^O eq 'MacOS';
########
chop($file = <DATA>);
########
@@ -274,7 +275,7 @@
EXPECT
ok
########
-open(H,'op/misc.t'); # must be in the 't' directory
+open(H,'op/misc.t') || open(H,':op:misc.t'); # must be in the 't' directory
stat(H);
print "ok\n" if (-e _ and -f _ and -r _);
EXPECT
==== //depot/maint-5.6/macperl/t/op/read.t#2 (xtext) ====
Index: perl/t/op/read.t
--- perl/t/op/read.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/op/read.t Sat Jul 7 17:50:08 2001
@@ -5,7 +5,7 @@
print "1..4\n";
-open(FOO,'op/read.t') || open(FOO,'t/op/read.t') || die "Can't open op.read";
+open(FOO,'op/read.t') || open(FOO,'t/op/read.t') || open(FOO,':op:read.t') || die "Can't open op.read";
seek(FOO,4,0);
$got = read(FOO,$buf,4);
==== //depot/maint-5.6/macperl/t/op/readdir.t#2 (xtext) ====
Index: perl/t/op/readdir.t
--- perl/t/op/readdir.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/op/readdir.t Sat Jul 7 17:50:08 2001
@@ -5,6 +5,8 @@
@INC = '../lib';
}
+use File::Spec::Functions;
+
eval 'opendir(NOSUCH, "no/such/directory");';
if ($@) { print "1..0\n"; exit; }
@@ -28,12 +30,13 @@
@R = sort @D;
@G = sort <op/*.t>;
+@G = sort <:op:*.t> if $^O eq 'MacOS';
if ($G[0] =~ m#.*\](\w+\.t)#i) {
# grep is to convert filespecs returned from glob under VMS to format
# identical to that returned by readdir
@G = grep(s#.*\](\w+\.t).*#op/$1#i,<op/*.t>);
}
-while (@R && @G && "op/".$R[0] eq $G[0]) {
+while (@R && @G && $G[0] eq ($^O eq 'MacOS' ? ':op:' : 'op/').$R[0]) {
shift(@R);
shift(@G);
}
==== //depot/maint-5.6/macperl/t/op/runlevel.t#2 (xtext) ====
Index: perl/t/op/runlevel.t
--- perl/t/op/runlevel.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/op/runlevel.t Sat Jul 7 17:50:08 2001
@@ -10,6 +10,7 @@
@INC = '../lib';
$Is_VMS = $^O eq 'VMS';
$Is_MSWin32 = $^O eq 'MSWin32';
+$Is_MacOS = $^O eq 'MacOS';
$ENV{PERL5LIB} = "../lib" unless $Is_VMS;
$|=1;
@@ -32,10 +33,12 @@
print TEST "$prog\n";
close TEST;
my $results = $Is_VMS ?
- `MCR $^X "-I[-.lib]" $switch $tmpfile 2>&1` :
- $Is_MSWin32 ?
- `.\\perl -I../lib $switch $tmpfile 2>&1` :
- `./perl $switch $tmpfile 2>&1`;
+ `MCR $^X "-I[-.lib]" $switch $tmpfile 2>&1` :
+ $Is_MSWin32 ?
+ `.\\perl -I../lib $switch $tmpfile 2>&1` :
+ $Is_MacOS ?
+ `$^X -I::lib $switch $tmpfile` :
+ `./perl $switch $tmpfile 2>&1`;
my $status = $?;
$results =~ s/\n+$//;
# allow expected output to be written as if $prog is on STDIN
==== //depot/maint-5.6/macperl/t/op/stat.t#2 (xtext) ====
Index: perl/t/op/stat.t
--- perl/t/op/stat.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/op/stat.t Sat Jul 7 17:50:08 2001
@@ -8,9 +8,11 @@
}
use Config;
+use File::Spec::Functions;
print "1..58\n";
+$Is_MacOS = $^O eq 'MacOS';
$Is_MSWin32 = $^O eq 'MSWin32';
$Is_Dos = $^O eq 'dos';
$Is_Dosish = $Is_Dos || $^O eq 'os2' || $Is_MSWin32;
@@ -52,7 +54,7 @@
print "# open failed: $!\nnot ok 1\nnot ok 2\n";
}
-if ($Is_Dosish) { unlink "Op.stat.tmp2"}
+if ($Is_Dosish || $Is_MacOS) { unlink "Op.stat.tmp2"}
else {
`rm -f Op.stat.tmp2;ln Op.stat.tmp Op.stat.tmp2; chmod 644 Op.stat.tmp`;
}
@@ -66,7 +68,7 @@
{print "ok 3\n";}
else {print "# \$nlink is |$nlink|\nnot ok 3\n";}
-if ( $Is_Dosish
+if ( $Is_Dosish || $Is_MacOS
# Solaris tmpfs bug
|| ($cwd =~ m#^/tmp# and $mtime && $mtime==$ctime && $^O eq 'solaris')
|| $cwd =~ m#/afs/#
@@ -85,7 +87,7 @@
print "#4 :$mtime: should != :$ctime:\n";
unlink "Op.stat.tmp" or print "# unlink failed: $!\n";
-if ($Is_MSWin32) { open F, '>Op.stat.tmp' and close F }
+if ($Is_MSWin32 || $Is_MacOS) { open F, '>Op.stat.tmp' and close F }
else { `touch Op.stat.tmp` }
if (-z 'Op.stat.tmp') {print "ok 5\n";} else {print "not ok 5\n";}
@@ -118,15 +120,16 @@
chmod 0700,'Op.stat.tmp';
if (-r 'Op.stat.tmp') {print "ok 18\n";} else {print "not ok 18\n";}
if (-w 'Op.stat.tmp') {print "ok 19\n";} else {print "not ok 19\n";}
-if ($Is_Dosish) {print "ok 20 # skipped: -x by extension\n";}
+if ($Is_Dosish || $Is_MacOS) {print "ok 20 # skipped: -x by extension\n";}
elsif (-x 'Op.stat.tmp') {print "ok 20\n";}
else {print "not ok 20\n";}
if (-f 'Op.stat.tmp') {print "ok 21\n";} else {print "not ok 21\n";}
if (! -d 'Op.stat.tmp') {print "ok 22\n";} else {print "not ok 22\n";}
-if (-d '.') {print "ok 23\n";} else {print "not ok 23\n";}
-if (! -f '.') {print "ok 24\n";} else {print "not ok 24\n";}
+my $dir = curdir();
+if (-d $dir) {print "ok 23\n";} else {print "not ok 23\n";}
+if (! -f $dir) {print "ok 24\n";} else {print "not ok 24\n";}
if (!$Is_Dosish and `ls -l perl` =~ /^l.*->/) {
if (-l 'perl') {print "ok 25\n";} else {print "not ok 25\n";}
@@ -171,7 +174,7 @@
{print "not ok 33\n";}
if (! -b '.') {print "ok 34\n";} else {print "not ok 34\n";}
-if ($^O eq 'mpeix' or $^O eq 'amigaos' or $Is_Dosish or $Is_Cygwin) {
+if ($^O eq 'mpeix' or $^O eq 'amigaos' or $Is_Dosish or $Is_Cygwin or $Is_MacOS) {
print "ok 35 # skipped: no -u\n"; goto tty_test;
}
@@ -205,7 +208,7 @@
# may not be available (at, cron rsh etc), the PERL_SKIP_TTY_TEST env var
# can be set to skip the tests that need a tty.
unless($ENV{PERL_SKIP_TTY_TEST}) {
- if ($Is_MSWin32) {
+ if ($Is_MSWin32 || $Is_MacOS) {
print "ok 36\n";
print "ok 37\n";
}
@@ -235,20 +238,21 @@
print "ok 38\n";
print "ok 39\n";
}
-open(null,"/dev/null");
+my $devnull = File::Spec->devnull;
+open(null, $devnull);
if (! -t null || -e '/xenix' || $^O eq 'machten' || $Is_MSWin32)
{print "ok 40\n";} else {print "not ok 40\n";}
close(null);
# These aren't strictly "stat" calls, but so what?
+my $file = catfile(curdir(), 'op', 'stat.t');
+if (-T $file) {print "ok 41\n";} else {print "not ok 41\n";}
+if (! -B $file) {print "ok 42\n";} else {print "not ok 42\n";}
-if (-T 'op/stat.t') {print "ok 41\n";} else {print "not ok 41\n";}
-if (! -B 'op/stat.t') {print "ok 42\n";} else {print "not ok 42\n";}
+if (-B './perl' || -B './perl.exe' || -B $^X) {print "ok 43\n";} else {print "not ok 43\n";}
+if (! -T './perl' && ! -T './perl.exe' || ! -T $^X) {print "ok 44\n";} else {print "not ok 44\n";}
-if (-B './perl' || -B './perl.exe') {print "ok 43\n";} else {print "not ok 43\n";}
-if (! -T './perl' && ! -T './perl.exe') {print "ok 44\n";} else {print "not ok 44\n";}
-
-open(FOO,'op/stat.t');
+open(FOO,$file);
eval { -T FOO; };
if ($@ =~ /not implemented/) {
print "# $@";
@@ -265,7 +269,7 @@
if (! -B FOO) {print "ok 49\n";} else {print "not ok 49\n";}
close(FOO);
- open(FOO,'op/stat.t');
+ open(FOO,$file);
$_ = <FOO>;
if (/perl/) {print "ok 50\n";} else {print "not ok 50\n";}
if (-T FOO) {print "ok 51\n";} else {print "not ok 51\n";}
@@ -276,8 +280,8 @@
}
close(FOO);
-if (-T '/dev/null') {print "ok 55\n";} else {print "not ok 55\n";}
-if (-B '/dev/null') {print "ok 56\n";} else {print "not ok 56\n";}
+if (-T $devnull) {print "ok 55\n";} else {print "not ok 55\n";}
+if (-B $devnull) {print "ok 56\n";} else {print "not ok 56\n";}
# and now, a few parsing tests:
$_ = 'Op.stat.tmp';
==== //depot/maint-5.6/macperl/t/op/subst_wamp.t#2 (xtext) ====
Index: perl/t/op/subst_wamp.t
--- perl/t/op/subst_wamp.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/op/subst_wamp.t Sat Jul 7 17:50:08 2001
@@ -1,7 +1,7 @@
#!./perl
$dummy = defined $&; # Now we have it...
-for $file ('op/subst.t', 't/op/subst.t') {
+for $file ('op/subst.t', 't/op/subst.t', ':op:subst.t') {
if (-r $file) {
do $file;
exit;
==== //depot/maint-5.6/macperl/t/op/taint.t#2 (xtext) ====
Index: perl/t/op/taint.t
--- perl/t/op/taint.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/op/taint.t Sat Jul 7 17:50:08 2001
@@ -14,6 +14,7 @@
use strict;
use Config;
+use File::Spec::Functions;
# We do not want the whole taint.t to fail
# just because Errno possibly failing.
@@ -36,11 +37,12 @@
}
}
+my $Is_MacOS = $^O eq 'MacOS';
my $Is_VMS = $^O eq 'VMS';
my $Is_MSWin32 = $^O eq 'MSWin32';
my $Is_Dos = $^O eq 'dos';
my $Invoke_Perl = $Is_VMS ? 'MCR Sys$Disk:[]Perl.' :
- $Is_MSWin32 ? '.\perl' : './perl';
+ $Is_MSWin32 ? '.\perl' : $Is_MacOS ? '::macos:perl' : './perl';
my @MoreEnv = qw/IFS CDPATH ENV BASH_ENV/;
if ($Is_VMS) {
@@ -97,7 +99,7 @@
}
# We need an external program to call.
-my $ECHO = ($Is_MSWin32 ? ".\\echo$$" : "./echo$$");
+my $ECHO = ($Is_MSWin32 ? ".\\echo$$" : $Is_MacOS ? ":echo$$" : "./echo$$");
END { unlink $ECHO }
open PROG, "> $ECHO" or die "Can't create $ECHO: $!";
print PROG 'print "@ARGV\n"', "\n";
@@ -118,7 +120,7 @@
test 1, eval { `$echo 1` } eq "1\n";
- if ($Is_MSWin32 || $Is_VMS || $Is_Dos) {
+ if ($Is_MSWin32 || $Is_VMS || $Is_Dos || $Is_MacOS) {
print "# Environment tainting tests skipped\n";
for (2..5) { print "ok $_\n" }
}
@@ -235,7 +237,7 @@
# How about command-line arguments? The problem is that we don't
# always get some, so we'll run another process with some.
{
- my $arg = "./arg$$";
+ my $arg = catfile(curdir(), "arg$$");
open PROG, "> $arg" or die "Can't create $arg: $!";
print PROG q{
eval { join('', @ARGV), kill 0 };
@@ -251,7 +253,7 @@
# Reading from a file should be tainted
{
- my $file = './TEST';
+ my $file = catfile(curdir(), 'TEST');
test 32, open(FILE, $file), "Couldn't open '$file': $!";
my $block;
@@ -583,7 +585,10 @@
if ($Config{d_readlink} && $Config{d_symlink}) {
my $symlink = "sl$$";
unlink($symlink);
- symlink("/something/naughty", $symlink) or die "symlink: $!\n";
+ my $sl = "/something/naughty";
+ # it has to be a real path on Mac OS
+ $sl = MacPerl::MakePath((MacPerl::Volumes)[0]) if $Is_MacOS;
+ symlink($sl, $symlink) or die "symlink: $!\n";
my $readlink = readlink($symlink);
test 144, tainted $readlink;
unlink($symlink);
@@ -697,7 +702,7 @@
{
# bug id 20001004.006
- open IN, "./TEST" or warn "$0: cannot read ./TEST: $!" ;
+ open IN, catfile(curdir(), 'TEST') or warn "$0: cannot read ./TEST: $!" ;
local $/;
my $a = <IN>;
my $b = <IN>;
@@ -709,7 +714,7 @@
{
# bug id 20001004.007
- open IN, "./TEST" or warn "$0: cannot read ./TEST: $!" ;
+ open IN, catfile(curdir(), 'TEST') or warn "$0: cannot read ./TEST: $!" ;
my $a = <IN>;
my $c = { a => 42,
==== //depot/maint-5.6/macperl/t/pragma/diagnostics.t#2 (xtext) ====
Index: perl/t/pragma/diagnostics.t
--- perl/t/pragma/diagnostics.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/pragma/diagnostics.t Sat Jul 7 17:50:08 2001
@@ -1,8 +1,15 @@
#!./perl
BEGIN {
- chdir '..' if -d '../pod' && -d '../t';
- @INC = 'lib';
+ # special-case Mac OS because of
+ # diagnostic-finding-date logistics
+ if ($^O eq 'MacOS') {
+ chdir '::' if -d '::pod' && -d '::t';
+ @INC = ":lib:";
+ } else {
+ chdir '..' if -d '../pod' && -d '../t';
+ @INC = 'lib';
+ }
}
==== //depot/maint-5.6/macperl/t/pragma/subs.t#2 (xtext) ====
Index: perl/t/pragma/subs.t
--- perl/t/pragma/subs.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/pragma/subs.t Sat Jul 7 17:50:08 2001
@@ -11,6 +11,7 @@
my @prgs = split "\n########\n", <DATA>;
print "1..", scalar @prgs, "\n";
+my $Is_MacOS = $^O eq 'MacOS';
my $Is_VMS = $^O eq 'VMS';
my $Is_MSWin32 = $^O eq 'MSWin32';
my $tmpfile = "tmp0000";
@@ -46,10 +47,12 @@
print TEST $prog,"\n";
close TEST;
my $results = $Is_VMS ?
- `./perl $switch $tmpfile 2>&1` :
- $Is_MSWin32 ?
- `.\\perl -I../lib $switch $tmpfile 2>&1` :
- `./perl $switch $tmpfile 2>&1`;
+ `./perl $switch $tmpfile 2>&1` :
+ $Is_MSWin32 ?
+ `.\\perl -I../lib $switch $tmpfile 2>&1` :
+ $Is_MacOS ?
+ `$^X -I::lib $switch $tmpfile` :
+ `./perl $switch $tmpfile 2>&1`;
my $status = $?;
$results =~ s/\n+$//;
# allow expected output to be written as if $prog is on STDIN
@@ -143,7 +146,7 @@
1;
--FILE--
use subs qw( Fred ) ;
-require "./abc" ;
+require ($^O eq "MacOS" ? ":abc" : "./abc");
sub Fred { print $_[0] + $_[1], "\n" }
EXPECT
3
==== //depot/maint-5.6/macperl/t/pragma/warn/doio#2 (text) ====
Index: perl/t/pragma/warn/doio
--- perl/t/pragma/warn/doio.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/pragma/warn/doio Sat Jul 7 17:50:08 2001
@@ -156,6 +156,12 @@
########
# doio.c [Perl_do_aexec5]
use warnings 'io' ;
+BEGIN {
+ if ($^O eq 'MacOS') {
+ print "SKIPPED\n# exec not present\n";
+ exit;
+ }
+}
exec "lskdjfalksdjfdjfkls","" ;
no warnings 'io' ;
exec "lskdjfalksdjfdjfkls","" ;
@@ -165,6 +171,12 @@
########
# doio.c [Perl_do_exec3]
use warnings 'io' ;
+BEGIN {
+ if ($^O eq 'MacOS') {
+ print "SKIPPED\n# exec not present\n";
+ exit;
+ }
+}
exec "lskdjfalksdjfdjfkls", "abc" ;
no warnings 'io' ;
exec "lskdjfalksdjfdjfkls", "abc" ;
==== //depot/maint-5.6/macperl/t/pragma/warn/mg#2 (text) ====
Index: perl/t/pragma/warn/mg
--- perl/t/pragma/warn/mg.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/pragma/warn/mg Sat Jul 7 17:50:08 2001
@@ -25,7 +25,7 @@
########
# mg.c
use warnings 'signal' ;
-if ($^O eq 'MSWin32' || $^O eq 'VMS') {
+if ($^O eq 'MSWin32' || $^O eq 'VMS' || $^O eq 'MacOS') {
print "SKIPPED\n# $^O, can't kill() to raise()\n"; exit;
}
$|=1;
@@ -35,8 +35,8 @@
########
# mg.c
no warnings 'signal' ;
-if ($^O eq 'MSWin32' || $^O eq 'VMS') {
- print "SKIPPED\n# win32, can't kill() to raise()\n"; exit;
+if ($^O eq 'MSWin32' || $^O eq 'VMS' || $^O eq 'MacOS') {
+ print "SKIPPED\n# $^O, can't kill() to raise()\n"; exit;
}
$|=1;
$SIG{"INT"} = "fred"; kill "INT",$$;
==== //depot/maint-5.6/macperl/t/pragma/warn/op#2 (text) ====
Index: perl/t/pragma/warn/op
--- perl/t/pragma/warn/op.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/pragma/warn/op Sat Jul 7 17:50:08 2001
@@ -745,6 +745,12 @@
########
# op.c
use warnings 'syntax' ;
+BEGIN {
+ if ($^O eq 'MacOS') {
+ print "SKIPPED\n# exec not present\n";
+ exit;
+ }
+}
exec "$^X -e 1" ;
my $a
EXPECT
@@ -774,6 +780,12 @@
########
# op.c
no warnings 'syntax' ;
+BEGIN {
+ if ($^O eq 'MacOS') {
+ print "SKIPPED\n# exec not present\n";
+ exit;
+ }
+}
exec "$^X -e 1" ;
my $a
EXPECT
==== //depot/maint-5.6/macperl/t/pragma/warn/pp_sys#2 (text) ====
==== //depot/maint-5.6/macperl/t/pragma/warnings.t#2 (xtext) ====
Index: perl/t/pragma/warnings.t
--- perl/t/pragma/warnings.t.~1~ Sat Jul 7 17:50:08 2001
+++ perl/t/pragma/warnings.t Sat Jul 7 17:50:08 2001
@@ -7,8 +7,11 @@
require Config; import Config;
}
+use File::Spec::Functions;
+
$| = 1;
+my $Is_MacOS = $^O eq 'MacOS';
my $Is_VMS = $^O eq 'VMS';
my $Is_MSWin32 = $^O eq 'MSWin32';
my $tmpfile = "tmp0000";
@@ -20,9 +23,15 @@
my @w_files = () ;
if (@ARGV)
- { print "ARGV = [@ARGV]\n" ; @w_files = map { s#^#./pragma/warn/#; $_ } @ARGV }
+ { print "ARGV = [@ARGV]\n" ;
+ if ($^O eq 'MacOS') {
+ @w_files = map { s#^#:pragma:warn:#; $_ } @ARGV
+ } else {
+ @w_files = map { s#^#./pragma/warn/#; $_ } @ARGV
+ }
+ }
else
- { @w_files = sort glob("pragma/warn/*") }
+ { @w_files = sort glob(catfile(curdir(), "pragma", "warn", "*")) }
foreach (@w_files) {
@@ -70,14 +79,24 @@
shift @files ;
$prog = shift @files ;
}
+
+ # fix up some paths
+ if ($^O eq 'MacOS') {
+ $prog =~ s|require "./abc";|require ":abc";|g;
+ $prog =~ s|require "./abcd";|require ":abcd";|g;
+ $prog =~ s|"\."|":"|g;
+ }
+
open TEST, ">$tmpfile";
print TEST $prog,"\n";
close TEST;
my $results = $Is_VMS ?
- `./perl "-I../lib" $switch $tmpfile 2>&1` :
- $Is_MSWin32 ?
- `.\\perl -I../lib $switch $tmpfile 2>&1` :
- `./perl -I../lib $switch $tmpfile 2>&1`;
+ `./perl "-I../lib" $switch $tmpfile 2>&1` :
+ $Is_MSWin32 ?
+ `.\\perl -I../lib $switch $tmpfile 2>&1` :
+ $Is_MacOS ?
+ `$^X -I::lib $switch $tmpfile` :
+ `./perl -I../lib $switch $tmpfile 2>&1`;
my $status = $?;
$results =~ s/\n+$//;
# allow expected output to be written as if $prog is on STDIN
@@ -88,6 +107,14 @@
$results =~ s/^(syntax|parse) error/syntax error/mig;
# allow all tests to run when there are leaks
$results =~ s/Scalars leaked: \d+\n//g;
+
+ # fix up some paths
+ if ($^O eq 'MacOS') {
+ $results =~ s|:abcd\b|./abcd|g;
+ $results =~ s|:abc\.pm\b|abc.pm|g;
+ $results =~ s|:abc\b|./abc|g;
+ }
+
$expected =~ s/\n+$//;
my $prefix = ($results =~ s#^PREFIX(\n|$)##) ;
# any special options? (OPTIONS foo bar zap)
End of Patch.