Blame t/08_core.t

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
}