diff options
Diffstat (limited to 't/lib/posix.t')
-rwxr-xr-x | t/lib/posix.t | 50 |
1 files changed, 21 insertions, 29 deletions
diff --git a/t/lib/posix.t b/t/lib/posix.t index 06e209c1ba..05b1252209 100755 --- a/t/lib/posix.t +++ b/t/lib/posix.t @@ -9,66 +9,58 @@ BEGIN { exit 0; } } -use FileHandle; + use POSIX qw(fcntl_h signal_h limits_h _exit getcwd open read write); use strict subs; -$mystdout = new_from_fd FileHandle 1,"w"; -autoflush STDOUT; -autoflush $mystdout; -print "1..16\n"; - -print $mystdout "ok ",fileno($mystdout),"\n"; -write(1,"ok 2\nnot ok 2\n", 5); +$| = 1; +print "1..14\n"; -$testfd = open("TEST", O_RDONLY, 0) and print "ok 3\n"; +$testfd = open("TEST", O_RDONLY, 0) and print "ok 1\n"; read($testfd, $buffer, 9) if $testfd > 2; -print $buffer eq "#!./perl\n" ? "ok 4\n" : "not ok 4\n"; +print $buffer eq "#!./perl\n" ? "ok 2\n" : "not ok 2\n"; + +write(1,"ok 3\nnot ok 3\n", 5); @fds = POSIX::pipe(); -print $fds[0] > $testfd ? "ok 5\n" : "not ok 5\n"; -$writer = FileHandle->new_from_fd($fds[1], "w"); -$reader = FileHandle->new_from_fd($fds[0], "r"); -print $writer "ok 6\n"; +print $fds[0] > $testfd ? "ok 4\n" : "not ok 4\n"; +CORE::open($reader = \*READER, "<&=".$fds[0]); +CORE::open($writer = \*WRITER, ">&=".$fds[1]); +print $writer "ok 5\n"; close $writer; print <$reader>; close $reader; $sigset = new POSIX::SigSet 1,3; delset $sigset 1; -if (!ismember $sigset 1) { print "ok 7\n" } -if (ismember $sigset 3) { print "ok 8\n" } +if (!ismember $sigset 1) { print "ok 6\n" } +if (ismember $sigset 3) { print "ok 7\n" } $mask = new POSIX::SigSet &SIGINT; $action = new POSIX::SigAction 'main::SigHUP', $mask, 0; sigaction(&SIGHUP, $action); $SIG{'INT'} = 'SigINT'; kill 'HUP', $$; sleep 1; -print "ok 12\n"; +print "ok 11\n"; sub SigHUP { - print "ok 9\n"; + print "ok 8\n"; kill 'INT', $$; sleep 2; - print "ok 10\n"; + print "ok 9\n"; } sub SigINT { - print "ok 11\n"; + print "ok 10\n"; } -print &_POSIX_OPEN_MAX > $fds[1] ? "ok 13\n" : "not ok 13\n"; +print &_POSIX_OPEN_MAX > $fds[1] ? "ok 12\n" : "not ok 12\n"; -print getcwd() =~ m#/t$# ? "ok 14\n" : "not ok 14\n"; +print getcwd() =~ m#/t$# ? "ok 13\n" : "not ok 13\n"; # Pick up whether we're really able to dynamically load everything. -print &POSIX::acos(1.0) == 0.0 ? "ok 15\n" : "not ok 15\n"; - -ungetc STDIN 65; -CORE::read(STDIN, $buf,1); -print $buf eq 'A' ? "ok 16\n" : "not ok 16\n"; +print &POSIX::acos(1.0) == 0.0 ? "ok 14\n" : "not ok 14\n"; -flush STDOUT; -autoflush STDOUT 0; +$| = 0; print '@#!*$@(!@#$'; _exit(0); |