summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2001-12-17 18:27:47 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-12-17 18:47:41 +0000
commitd4742b2c4fb9d3d58f0b4211ec254bb804bb6fd5 (patch)
tree7a3a1483729e14b6d2582b4ee43901c09755f0db /ext
parent6531c3e64341456e3e8916932e223973bb680529 (diff)
downloadperl-d4742b2c4fb9d3d58f0b4211ec254bb804bb6fd5.tar.gz
more POSIX tests, and more autoloading
Message-ID: <20011217182747.D21702@plum.flirble.org> p4raw-id: //depot/perl@13739
Diffstat (limited to 'ext')
-rw-r--r--ext/POSIX/POSIX.pm35
-rw-r--r--ext/POSIX/t/posix.t27
2 files changed, 41 insertions, 21 deletions
diff --git a/ext/POSIX/POSIX.pm b/ext/POSIX/POSIX.pm
index 93366709ac..92a3182ad5 100644
--- a/ext/POSIX/POSIX.pm
+++ b/ext/POSIX/POSIX.pm
@@ -6,7 +6,7 @@ use AutoLoader;
use XSLoader ();
-our $VERSION = "1.04" ;
+our $VERSION = "1.05" ;
# Grandfather old foo_h form to new :foo_h form
my $loaded;
@@ -49,6 +49,13 @@ sub AUTOLOAD {
goto &$AUTOLOAD;
}
+sub POSIX::SigAction::new {
+ bless {HANDLER => $_[1], MASK => $_[2], FLAGS => $_[3] || 0}, $_[0];
+}
+
+1;
+__END__
+
sub usage {
my ($mess) = @_;
croak "Usage: POSIX::$mess";
@@ -65,18 +72,6 @@ sub unimpl {
croak "Unimplemented: POSIX::$mess";
}
-############################
-package POSIX::SigAction;
-
-sub new {
- bless {HANDLER => $_[1], MASK => $_[2], FLAGS => $_[3] || 0}, $_[0];
-}
-
-############################
-package POSIX; # return to package POSIX so AutoSplit is happy
-1;
-__END__
-
sub assert {
usage "assert(expr)" if @_ != 1;
if (!$_[0]) {
@@ -744,7 +739,7 @@ sub load_imports {
ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower
isprint ispunct isspace isupper isxdigit tolower toupper)],
- dirent_h => [qw()],
+ dirent_h => [],
errno_h => [qw(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT
EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED
@@ -781,7 +776,7 @@ sub load_imports {
LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP
LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP)],
- grp_h => [qw()],
+ grp_h => [],
limits_h => [qw( ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX
INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON
@@ -801,7 +796,7 @@ sub load_imports {
math_h => [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod
frexp ldexp log10 modf pow sinh tan tanh)],
- pwd_h => [qw()],
+ pwd_h => [],
setjmp_h => [qw(longjmp setjmp siglongjmp sigsetjmp)],
@@ -813,7 +808,7 @@ sub load_imports {
SIG_IGN SIG_SETMASK SIG_UNBLOCK raise sigaction signal
sigpending sigprocmask sigsuspend)],
- stdarg_h => [qw()],
+ stdarg_h => [],
stddef_h => [qw(NULL offsetof)],
@@ -842,9 +837,9 @@ sub load_imports {
S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
fstat mkfifo)],
- sys_times_h => [qw()],
+ sys_times_h => [],
- sys_types_h => [qw()],
+ sys_types_h => [],
sys_utsname_h => [qw(uname)],
@@ -882,7 +877,7 @@ sub load_imports {
getpid getuid isatty lseek pathconf pause setgid setpgid
setsid setuid sysconf tcgetpgrp tcsetpgrp ttyname)],
- utime_h => [qw()],
+ utime_h => [],
);
diff --git a/ext/POSIX/t/posix.t b/ext/POSIX/t/posix.t
index 81c97e5961..49357a6641 100644
--- a/ext/POSIX/t/posix.t
+++ b/ext/POSIX/t/posix.t
@@ -11,7 +11,7 @@ BEGIN {
}
require "./test.pl";
-plan(tests => 31);
+plan(tests => 38);
use POSIX qw(fcntl_h signal_h limits_h _exit getcwd open read strftime write
@@ -185,6 +185,31 @@ try_strftime("Fri Mar 31 00:00:00 2000 091", 0,0,0, 31,2,100);
}
}
+SKIP: {
+ skip("no kill() support on Mac OS", 1) if $Is_MacOS;
+ is (eval "kill 0", 0, "check we have CORE::kill")
+ or print "\$\@ is " . _qq($@) . "\n";
+}
+
+# Check that we can import the POSIX kill routine
+POSIX->import ('kill');
+my $result = eval "kill 0";
+is ($result, undef, "we should now have POSIX::kill");
+# Check usage.
+like ($@, qr/^Usage: POSIX::kill\(pid, sig\)/, "check its usage message");
+
+# Check unimplemented.
+$result = eval {POSIX::offsetof};
+is ($result, undef, "offsetof should fail");
+like ($@, qr/^Unimplemented: POSIX::offsetof\(\) is C-specific/,
+ "check its unimplemented message");
+
+# Check reimplemented.
+$result = eval {POSIX::fgets};
+is ($result, undef, "fgets should fail");
+like ($@, qr/^Use method IO::Handle::gets\(\) instead/,
+ "check its redef message");
+
$| = 0;
# The following line assumes buffered output, which may be not true:
print '@#!*$@(!@#$' unless ($Is_MacOS || $Is_OS2 || $Is_UWin || $Is_OS390 ||