|
#! /usr/bin/perl -w
SKIP: {
if ($^O eq 'MSWin32' ) {
skip( "No functions to override in Win32" , 1);
} else {
no warnings;
*CORE::GLOBAL::sysopen = sub { $! = POSIX::EACCES(); return };
my $required_error_message = q[(?:] . ( quotemeta POSIX::strerror(POSIX::EACCES())) . q[|Permission[ ] denied)];
@INC = qw(blib/lib) ;
my $generated = 0;
eval {
Crypt::URandom::urandom(1);
$generated = 1;
};
chomp $@;
ok(! $generated && $@ =~ / $required_error_message /smx, "Correct exception thrown when sysopen is overridden:$@" );
$generated = 0;
eval {
Crypt::URandom::urandom(1);
$generated = 1;
};
chomp $@;
ok(! $generated && $@ =~ / $required_error_message /smx, "Correct exception thrown when sysopen is overridden twice:$@" );
}
}
done_testing();
|