Change 11388 by pudge@pudge-mobile on 2001/07/16 23:11:26 Fix DB_File, and patch tests for it, and NDBM_File, and POSIX. Affected files ... ... //depot/maint-5.6/macperl/macos/MacPerlTests.cmd#2 edit ... //depot/maint-5.6/macperl/macos/xsubpp.patch#2 edit ... //depot/maint-5.6/macperl/t/lib/db-btree.t#2 edit ... //depot/maint-5.6/macperl/t/lib/db-hash.t#2 edit ... //depot/maint-5.6/macperl/t/lib/db-recno.t#2 edit ... //depot/maint-5.6/macperl/t/lib/ndbm.t#2 edit ... //depot/maint-5.6/macperl/t/lib/posix.t#2 edit Differences ... ==== //depot/maint-5.6/macperl/macos/MacPerlTests.cmd#2 (text) ==== Index: perl/macos/MacPerlTests.cmd --- perl/macos/MacPerlTests.cmd.~1~ Mon Jul 16 17:15:05 2001 +++ perl/macos/MacPerlTests.cmd Mon Jul 16 17:15:05 2001 @@ -129,8 +129,8 @@ ::macos:perl -I::lib :lib:class-struct.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:complex.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :lib:complex.t >> ::macos:MacPerlTests.out -# echo "::macos:perl -I::lib :lib:db-btree.t" >> ::macos:MacPerlTests.out -# ::macos:perl -I::lib :lib:db-btree.t >> ::macos:MacPerlTests.out +echo "::macos:perl -I::lib :lib:db-btree.t" >> ::macos:MacPerlTests.out +::macos:perl -I::lib :lib:db-btree.t >> ::macos:MacPerlTests.out # echo "::macos:perl -I::lib :lib:db-hash.t" >> ::macos:MacPerlTests.out # ::macos:perl -I::lib :lib:db-hash.t >> ::macos:MacPerlTests.out # echo "::macos:perl -I::lib :lib:db-recno.t" >> ::macos:MacPerlTests.out @@ -237,8 +237,8 @@ ::macos:perl -I::lib :lib:io_xs.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:ipc_sysv.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :lib:ipc_sysv.t >> ::macos:MacPerlTests.out -# echo "::macos:perl -I::lib :lib:ndbm.t" >> ::macos:MacPerlTests.out -# ::macos:perl -I::lib :lib:ndbm.t >> ::macos:MacPerlTests.out +echo "::macos:perl -I::lib :lib:ndbm.t" >> ::macos:MacPerlTests.out +::macos:perl -I::lib :lib:ndbm.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:odbm.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :lib:odbm.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:opcode.t" >> ::macos:MacPerlTests.out @@ -255,8 +255,8 @@ ::macos:perl -I::lib :lib:peek.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:ph.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :lib:ph.t >> ::macos:MacPerlTests.out -# echo "::macos:perl -I::lib :lib:posix.t" >> ::macos:MacPerlTests.out -# ::macos:perl -I::lib :lib:posix.t >> ::macos:MacPerlTests.out +echo "::macos:perl -I::lib :lib:posix.t" >> ::macos:MacPerlTests.out +::macos:perl -I::lib :lib:posix.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:safe1.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :lib:safe1.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:safe2.t" >> ::macos:MacPerlTests.out @@ -566,21 +566,38 @@ ::macos:perl -I::lib ::macos:MacPerlTests.plx ::macos:MacPerlTests.out >> :::macos:MacPerlTests.out +echo "The following tests mostly work, but fail because of known" +echo "IO problems. Feel free to run them, and note the failures." echo "These tests are known to fail. Run if you want to, but beware" echo "because crashes are possible." -echo "::macos:perl -I::lib :lib:db-btree.t >> ::macos:MacPerlTests.out" +echo "" +echo "# DB is broken in a few different ways" echo "::macos:perl -I::lib :lib:db-hash.t >> ::macos:MacPerlTests.out" echo "::macos:perl -I::lib :lib:db-recno.t >> ::macos:MacPerlTests.out" +echo "" +echo "# DOS::Glob doesn't work ... do we care?" echo "::macos:perl -I::lib :lib:dosglob.t >> ::macos:MacPerlTests.out" +echo "" +echo "# Devel::DProf seems to work, but test needs major work :/" echo "::macos:perl -I::lib :lib:dprof.t >> ::macos:MacPerlTests.out" +echo "" +echo "# I have no idea about these ..." echo "::macos:perl -I::lib :lib:ftmp-mktemp.t >> ::macos:MacPerlTests.out" echo "::macos:perl -I::lib :lib:ftmp-posix.t >> ::macos:MacPerlTests.out" echo "::macos:perl -I::lib :lib:ftmp-security.t >> ::macos:MacPerlTests.out" echo "::macos:perl -I::lib :lib:ftmp-tempfile.t >> ::macos:MacPerlTests.out" -echo "::macos:perl -I::lib :lib:ndbm.t >> ::macos:MacPerlTests.out" -echo "::macos:perl -I::lib :lib:posix.t >> ::macos:MacPerlTests.out" +echo "" +echo "# system() fails to return a good value" echo "::macos:perl -I::lib :op:die_exit.t >> ::macos:MacPerlTests.out" +echo "" +echo "# I dunno here" echo "::macos:perl -I::lib :op:magic.t >> ::macos:MacPerlTests.out" +echo "" +echo "# fails test 48 (known problem in IO redirection)" echo "::macos:perl -I::lib :op:misc.t >> ::macos:MacPerlTests.out" +echo "" +echo "# fails tests 129, 130, 142, 161 (known problem in sfio)" echo "::macos:perl -I::lib :op:sprintf.t >> ::macos:MacPerlTests.out" +echo "" +echo "# fails tests 319, 329 (known problem in IO redirection)" echo "::macos:perl -I::lib :pragma:warnings.t >> ::macos:MacPerlTests.out" ==== //depot/maint-5.6/macperl/macos/xsubpp.patch#2 (text) ==== Index: perl/macos/xsubpp.patch --- perl/macos/xsubpp.patch.~1~ Mon Jul 16 17:15:05 2001 +++ perl/macos/xsubpp.patch Mon Jul 16 17:15:05 2001 @@ -20,15 +20,15 @@ die "Can't find $typemap in $pwd\n" unless -r $typemap; } -unshift @tm, qw(../../../../lib/ExtUtils/typemap ../../../lib/ExtUtils/typemap -+if ($Is_MacOS) { ++if ($Is_MacOS) { my @tmp; + foreach (qw(:::: ::: :: :)) { -+ unshift @tm, "$_:lib:ExtUtils:typemap"; -+ unshift @tm, "$_:macos:lib:ExtUtils:typemap"; -+ unshift @tm, "$_:Mac:typemap"; -+ unshift @tm, "$_:macos:ext:Mac:typemap"; -+ unshift @tm, "$_:typemap"; ++ push @tmp, "$_:lib:ExtUtils:typemap"; ++ push @tmp, "$_:macos:lib:ExtUtils:typemap"; ++ push @tmp, "$_:Mac:typemap"; ++ push @tmp, "$_:macos:ext:Mac:typemap"; ++ push @tmp, "$_:typemap"; + } -+ unshift @tm, "typemap"; ++ unshift @tm, @tmp, "typemap"; +} else { + unshift @tm, qw(../../../../lib/ExtUtils/typemap ../../../lib/ExtUtils/typemap ../../lib/ExtUtils/typemap ../../../typemap ../../typemap ==== //depot/maint-5.6/macperl/t/lib/db-btree.t#2 (xtext) ==== Index: perl/t/lib/db-btree.t --- perl/t/lib/db-btree.t.~1~ Mon Jul 16 17:15:05 2001 +++ perl/t/lib/db-btree.t Mon Jul 16 17:15:05 2001 @@ -142,7 +142,8 @@ my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat($Dfile); -ok(20, ($mode & 0777) == ($^O eq 'os2' ? 0666 : 0640) || $^O eq 'amigaos' || $^O eq 'MSWin32'); +ok(20, ($mode & 0777) == (($^O eq 'os2' || $^O eq 'MacOS') ? 0666 : 0640) + || $^O eq 'amigaos' || $^O eq 'MSWin32'); my ($key, $value, $i); while (($key,$value) = each(%h)) { ==== //depot/maint-5.6/macperl/t/lib/db-hash.t#2 (xtext) ==== Index: perl/t/lib/db-hash.t --- perl/t/lib/db-hash.t.~1~ Mon Jul 16 17:15:05 2001 +++ perl/t/lib/db-hash.t Mon Jul 16 17:15:05 2001 @@ -108,7 +108,8 @@ my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat($Dfile); -ok(16, ($mode & 0777) == ($^O eq 'os2' ? 0666 : 0640) || $^O eq 'amigaos' || $^O eq 'MSWin32'); +ok(16, ($mode & 0777) == (($^O eq 'os2' || $^O eq 'MacOS') ? 0666 : 0640) + || $^O eq 'amigaos' || $^O eq 'MSWin32'); my ($key, $value, $i); while (($key,$value) = each(%h)) { ==== //depot/maint-5.6/macperl/t/lib/db-recno.t#2 (xtext) ==== Index: perl/t/lib/db-recno.t --- perl/t/lib/db-recno.t.~1~ Mon Jul 16 17:15:05 2001 +++ perl/t/lib/db-recno.t Mon Jul 16 17:15:05 2001 @@ -152,7 +152,7 @@ my @h ; ok(17, $X = tie @h, 'DB_File', $Dfile, O_RDWR|O_CREAT, 0640, $DB_RECNO ) ; -ok(18, ((stat($Dfile))[2] & 0777) == ($^O eq 'os2' ? 0666 : 0640) +ok(18, ((stat($Dfile))[2] & 0777) == (($^O eq 'os2' || $^O eq 'MacOS') ? 0666 : 0640) || $^O eq 'MSWin32' || $^O eq 'amigaos') ; #my $l = @h ; ==== //depot/maint-5.6/macperl/t/lib/ndbm.t#2 (xtext) ==== Index: perl/t/lib/ndbm.t --- perl/t/lib/ndbm.t.~1~ Mon Jul 16 17:15:05 2001 +++ perl/t/lib/ndbm.t Mon Jul 16 17:15:05 2001 @@ -40,7 +40,7 @@ if (! -e $Dfile) { ($Dfile) = <Op.dbmx*>; } -if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32') { +if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'MacOS') { print "ok 2 # Skipped: different file permission semantics\n"; } else { @@ -137,7 +137,7 @@ print ($h{''} eq 'bar' ? "ok 12\n" : "not ok 12\n"); untie %h; -unlink 'Op.dbmx.dir', $Dfile; +unlink <Op.dbmx*>, $Dfile; { # sub-class test ==== //depot/maint-5.6/macperl/t/lib/posix.t#2 (xtext) ==== Index: perl/t/lib/posix.t --- perl/t/lib/posix.t.~1~ Mon Jul 16 17:15:05 2001 +++ perl/t/lib/posix.t Mon Jul 16 17:15:05 2001 @@ -16,8 +16,9 @@ $| = 1; print "1..27\n"; -$Is_W32 = $^O eq 'MSWin32'; -$Is_Dos = $^O eq 'dos'; +$Is_W32 = $^O eq 'MSWin32'; +$Is_Dos = $^O eq 'dos'; +$Is_MacOS = $^O eq 'MacOS'; $testfd = open("TEST", O_RDONLY, 0) and print "ok 1\n"; read($testfd, $buffer, 9) if $testfd > 2; @@ -50,6 +51,13 @@ delset $sigset 1; if (!ismember $sigset 1) { print "ok 6\n" } if (ismember $sigset 3) { print "ok 7\n" } + +if ($Is_MacOS) { + for (8..11) { + print "ok $_ # skipped, no kill() support on Mac OS\n"; + } +} +else { $mask = new POSIX::SigSet &SIGINT; $action = new POSIX::SigAction 'main::SigHUP', $mask, 0; sigaction(&SIGHUP, $action); @@ -68,11 +76,22 @@ sub SigINT { print "ok 10\n"; } +}} + +if (&_POSIX_OPEN_MAX) { +print &_POSIX_OPEN_MAX > $fds[1] ? "ok 12\n" : "not ok 12\n"; +} else { +print "ok 12 # _POSIX_OPEN_MAX undefined ($fds[1])\n"; } -print &_POSIX_OPEN_MAX > $fds[1] ? "ok 12\n" : "not ok 12\n"; +my $pat; +if ($Is_MacOS) { + $pat = qr/:t:$/; +} else { + $pat = qr#/t$#; +} +print getcwd() =~ $pat ? "ok 13\n" : "not ok 13\n"; -print getcwd() =~ m#/t$# ? "ok 13\n" : "not ok 13\n"; # Check string conversion functions. @@ -133,5 +152,5 @@ $| = 0; # The following line assumes buffered output, which may be not true with EMX: -print '@#!*$@(!@#$' unless ($^O eq 'os2' || $^O eq 'uwin' || $^O eq 'os390'); +print '@#!*$@(!@#$' unless ($Is_MacOS || $^O eq 'os2' || $^O eq 'uwin' || $^O eq +'os390'); _exit(0); End of Patch.