فهرست منبع

tests: make sure tests don't hang

Sven Nierlein 12 سال پیش
والد
کامیت
07f9a0f627
1فایلهای تغییر یافته به همراه6 افزوده شده و 1 حذف شده
  1. 6 1
      NPTest.pm

+ 6 - 1
NPTest.pm

@@ -615,7 +615,10 @@ sub testCmd {
 	my $class = shift;
 	my $command = shift or die "No command passed to testCmd";
 	my $object = $class->new;
-	
+
+	local $SIG{'ALRM'} = sub { die("timeout in command: $command"); };
+	alarm(120); # no test should take longer than 120 seconds
+
 	my $output = `$command`;
 	$object->return_code($? >> 8);
 	$_ = $? & 127;
@@ -625,6 +628,8 @@ sub testCmd {
 	chomp $output;
 	$object->output($output);
 
+	alarm(0);
+
 	my ($pkg, $file, $line) = caller(0);
 	print "Testing: $command", $/;
 	if ($ENV{'NPTEST_DEBUG'}) {