X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.PL;h=f9551f84e63fd3aa837b85fc8b4e11fcf130abde;hb=362d4549472688ac04e6370ef4fc4d9fa5dfc083;hp=5db52abc81a8ed9f059bf26cdd8ee5f5f2363052;hpb=43944e47e5ef83305a0762472e12e331fc7efb14;p=dbsrgits%2FDBIx-Class.git diff --git a/Makefile.PL b/Makefile.PL index 5db52ab..f9551f8 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,6 +1,7 @@ use inc::Module::Install 0.67; use strict; use warnings; +use POSIX (); use 5.006001; # delete this line if you want to send patches for earlier. @@ -25,11 +26,13 @@ requires 'Scope::Guard' => 0.03; requires 'Path::Class' => 0; requires 'List::Util' => 1.19; requires 'Sub::Name' => 0.04; +requires 'namespace::clean' => 0.09; # Perl 5.8.0 doesn't have utf8::is_utf8() requires 'Encode' => 0 if ($] <= 5.008000); -test_requires 'DBD::SQLite' => 1.14; +configure_requires 'DBD::SQLite' => 1.14; + test_requires 'Test::Builder' => 0.33; test_requires 'Test::Warn' => 0.11; test_requires 'Test::Exception' => 0; @@ -117,9 +120,21 @@ EOW exit 0; } else { - wait(); + eval { + local $SIG{ALRM} = sub { die "timeout\n" }; + alarm 5; + wait(); + alarm 0; + }; + my $exception = $@; + my $sig = $? & 127; - if ($sig == 11) { + +# make sure process actually dies + $exception && kill POSIX::SIGKILL(), $pid; + + if ($exception || $sig == POSIX::SIGSEGV() || $sig == POSIX::SIGABRT() + || $sig == 7) { # 7 == SIGBUS, haven't seen it but just in case warn (<