]> git.vpit.fr Git - perl/modules/IPC-MorseSignals.git/blobdiff - t/02-sigusr.t
Importing IPC-MorseSignals-0.04.tar.gz
[perl/modules/IPC-MorseSignals.git] / t / 02-sigusr.t
index 8a048e9598b90c5302d7fa006c6da248039157c7..abe83760b0bab75ec411ebb69db8dc2935155e2f 100644 (file)
@@ -2,7 +2,7 @@
 
 use Test::More tests => 2;
 
-use POSIX qw/SIGTERM SIGKILL EXIT_FAILURE EXIT_SUCCESS/;
+use POSIX qw/SIGINT SIGTERM SIGKILL EXIT_SUCCESS EXIT_FAILURE WIFEXITED WEXITSTATUS/;
 
 sub trysig {
  my ($n, $s) = @_;
@@ -12,14 +12,16 @@ sub trysig {
  } elsif ($pid == 0) {
   local $SIG{$s} = sub { exit EXIT_SUCCESS };
   1 while 1;
+  exit EXIT_FAILURE;
  }
- my $ret = EXIT_FAILURE;
+ sleep 1;
+ my $ret = 0;
  eval {
   local $SIG{ALRM} = sub { die };
   alarm 1;
   kill $n, $pid;
   waitpid $pid, 0;
-  $ret = $?;
+  $ret = (WIFEXITED($?) && (WEXITSTATUS($?) == EXIT_SUCCESS));
   alarm 0;
  };
  if ($@) {
@@ -28,9 +30,8 @@ sub trysig {
   kill SIGKILL, $pid;
   die "$s: $@";
  }
- ok($ret == EXIT_SUCCESS, $s);
+ ok($ret, $s);
 }
 
-sleep 1;
 trysig SIGUSR1, 'USR1';
 trysig SIGUSR2, 'USR2';