diff options
author | Dominic Dunlop <domo@slipper.ip.lu> | 1997-04-08 22:15:15 +0200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1997-04-07 00:00:00 +0000 |
commit | f56dede6f0d67b2435681a318bccb04d4f017fbd (patch) | |
tree | 4821cbec6808e614edd377377823119b187f6e21 | |
parent | 4ae80833094c9f785b5bbead992abe3e19d8928b (diff) | |
download | perl-f56dede6f0d67b2435681a318bccb04d4f017fbd.tar.gz |
Accommodate CodeBuilder variant of Machten 4.0.3
The following patch against _97b massages a couple of test files so that
CodeBuilder 1.0, a derivative of MachTen 4.0.3, passes all tests (except
lib/db-recno, due to an old DB library). The patch does three things:
1. Make op/stat.t test 35 look in /usr/bin for SUID files iff $^O has value
'machten'. (PowerBuilder has /bin directory, but it contains no SUID
files. Perl5 porters with reasonable memories may remember that the test
got retargetted at /bin only in January. Sigh. A better fix than this
quick hack is really required.)
2. Make op/stat.t test 39 check for value of $^O, succeeding if it's 'machten'.
(PowerBuilder and other MachTen variants lack /MachTen directory, but
all have a uname which says they're 'machten'.)
3. Amend io/fs.t test 25 so that it tests whether truncate can reduce the
length of a file attached to a filehandle, mirroring test 23's check of
whether truncate can reduce the length of a named file, rather than testing
whether truncate can extend an empty file attched to a filehandle. (See
discussion below.)
NOTE IN PARTICULAR POINT 3: CodeBuilder is distinguished from MachTen 4.0.3
in supporting a true Berkeley Fast File System as an alternative to MacOS'
incredibly slow Heirarchical File System. CodeBuilder's FFS code is
derived from 4.3BSD, and does not allow truncate() to extend a file's size.
The HFS code is derived from 4.4BSD, and does allow such extension. (The
man page for truncate(2) has not, as far as I can tell, changed in a long
time, and has reather slippery wording: it's not clear whether extension is
allowed, and the system errors one might expect for failed extension --
ENOSPC and others -- are not mentioned.) Looking at the io/fs.t, it seems
that a typo may have turned a check that the length of a file attached to a
handle can be reduced into a check that it can be extended. The patch
"fixes" the test to check for length reduction. If, on the other hand, it
should indeed be a test of extension (which, presumably, every other system
that supports truncate() passes) then io/fs.t should not be patched, and
CodeBuilder 1.0 pronounced buggy.
p5p-msgid: v03020902af704d320f27@[194.51.248.88]
-rwxr-xr-x | t/io/fs.t | 2 | ||||
-rwxr-xr-x | t/op/stat.t | 6 |
2 files changed, 3 insertions, 5 deletions
@@ -117,7 +117,7 @@ else { truncate "Iofs.tmp", 0; if (-z "Iofs.tmp") {print "ok 24\n"} else {print "not ok 24\n"} `echo helloworld > Iofs.tmp`; - open(FH, ">Iofs.tmp") or die "Can't create Iofs.tmp"; + open(FH, ">>Iofs.tmp") or die "Can't create Iofs.tmp"; truncate FH, 5; if (-s "Iofs.tmp" == 5) {print "ok 25\n"} else {print "not ok 25\n"} truncate FH, 0; diff --git a/t/op/stat.t b/t/op/stat.t index 84c5283ce5..c1cc1573b4 100755 --- a/t/op/stat.t +++ b/t/op/stat.t @@ -1,8 +1,6 @@ #!./perl # $RCSfile: stat.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:28 $ -# 950521 DFD This version hacked to make test 39 succeed on MachTen -# though the O.S. wrongly thinks /dev/null is a terminal BEGIN { chdir 't' if -d 't'; @@ -141,7 +139,7 @@ if ($^O eq 'amigaos' or $Is_MSWin32) {print "ok 35\n"; goto tty_test;} $cnt = $uid = 0; die "Can't run op/stat.t test 35 without pwd working" unless $cwd; -($bin) = grep {-d} qw(/bin /usr/bin) +($bin) = grep {-d} ($^O eq 'machten' ? qw(/usr/bin /bin) : qw(/bin /usr/bin)) or print ("not ok 35\n"), goto tty_test; opendir BIN, $bin or die "Can't opendir $bin: $!"; while (defined($_ = readdir BIN)) { @@ -174,7 +172,7 @@ else { } if (! -t tty) {print "ok 38\n";} else {print "not ok 38\n";} open(null,"/dev/null"); -if (! -t null || -e '/xenix' || -e '/MachTen' || $Is_MSWin32) +if (! -t null || -e '/xenix' || $^O eq 'machten' || $Is_MSWin32) {print "ok 39\n";} else {print "not ok 39\n";} close(null); if (-t) {print "ok 40\n";} else {print "not ok 40\n";} |