|
Packit |
164714 |
#!/usr/bin/perl -w
|
|
Packit |
164714 |
use strict;
|
|
Packit |
164714 |
use Test::More;
|
|
Packit |
164714 |
use Config;
|
|
Packit |
164714 |
|
|
Packit |
164714 |
use constant SIGABRT => 6;
|
|
Packit |
164714 |
|
|
Packit |
164714 |
# Core dumps on OS X are complicated. See GH #5.
|
|
Packit |
164714 |
|
|
Packit |
164714 |
BEGIN {
|
|
Packit |
164714 |
if ($^O eq 'darwin') {
|
|
Packit |
164714 |
plan skip_all => "Coredump tests skipped under OS X/Darwin";
|
|
Packit |
164714 |
}
|
|
Packit |
164714 |
}
|
|
Packit |
164714 |
|
|
Packit |
164714 |
BEGIN {
|
|
Packit |
164714 |
eval { require BSD::Resource; BSD::Resource->import() };
|
|
Packit |
164714 |
|
|
Packit |
164714 |
if ($@) {
|
|
Packit |
164714 |
plan skip_all => "BSD::Resource required for coredump tests";
|
|
Packit |
164714 |
}
|
|
Packit |
164714 |
}
|
|
Packit |
164714 |
|
|
Packit |
164714 |
plan tests => 3;
|
|
Packit |
164714 |
|
|
Packit |
164714 |
# We want to invoke our sub-commands using Perl.
|
|
Packit |
164714 |
|
|
Packit |
164714 |
my $perl_path = $Config{perlpath};
|
|
Packit |
164714 |
|
|
Packit |
164714 |
if ($^O ne 'VMS') {
|
|
Packit |
164714 |
$perl_path .= $Config{_exe}
|
|
Packit |
164714 |
unless $perl_path =~ m/$Config{_exe}$/i;
|
|
Packit |
164714 |
}
|
|
Packit |
164714 |
|
|
Packit |
164714 |
use_ok("IPC::System::Simple","run");
|
|
Packit |
164714 |
|
|
Packit |
164714 |
chdir("t");
|
|
Packit |
164714 |
|
|
Packit |
164714 |
my $rlimit_success = setrlimit(RLIMIT_CORE, RLIM_INFINITY, RLIM_INFINITY);
|
|
Packit |
164714 |
|
|
Packit |
164714 |
SKIP: {
|
|
Packit |
164714 |
skip "setrlimit failed", 2 if not $rlimit_success;
|
|
Packit |
164714 |
|
|
Packit |
164714 |
eval {
|
|
Packit |
164714 |
run([1],$perl_path, 'signaler.pl', SIGABRT);
|
|
Packit |
164714 |
};
|
|
Packit |
164714 |
|
|
Packit |
164714 |
like($@, qr/died to signal/, "Signal caught, \$? = $?");
|
|
Packit |
164714 |
like($@, qr/dumped core/, "Coredump caught, \$? = $?");
|
|
Packit |
164714 |
|
|
Packit |
164714 |
unlink('core'); # Clean up our core file, if it exists.
|
|
Packit |
164714 |
}
|