]> git.vpit.fr Git - perl/modules/IPC-MorseSignals.git/blobdiff - t/02-sigusr.t
Importing IPC-MorseSignals-0.06.tar.gz
[perl/modules/IPC-MorseSignals.git] / t / 02-sigusr.t
index abe83760b0bab75ec411ebb69db8dc2935155e2f..112f5e6b11464945b929c3df5ee7bd733668b7f2 100644 (file)
@@ -4,34 +4,13 @@ use Test::More tests => 2;
 
 use POSIX qw/SIGINT SIGTERM SIGKILL EXIT_SUCCESS EXIT_FAILURE WIFEXITED WEXITSTATUS/;
 
-sub trysig {
- my ($n, $s) = @_;
- my $pid = fork;
- if (!defined $pid) {
-  die "$s: fork() failed : $!";
- } elsif ($pid == 0) {
-  local $SIG{$s} = sub { exit EXIT_SUCCESS };
-  1 while 1;
-  exit EXIT_FAILURE;
- }
- sleep 1;
- my $ret = 0;
- eval {
-  local $SIG{ALRM} = sub { die };
-  alarm 1;
-  kill $n, $pid;
-  waitpid $pid, 0;
-  $ret = (WIFEXITED($?) && (WEXITSTATUS($?) == EXIT_SUCCESS));
-  alarm 0;
- };
- if ($@) {
-  kill SIGINT,  $pid;
-  kill SIGTERM, $pid;
-  kill SIGKILL, $pid;
-  die "$s: $@";
- }
- ok($ret, $s);
-}
+my ($a, $b) = (0, 0);
 
-trysig SIGUSR1, 'USR1';
-trysig SIGUSR2, 'USR2';
+local $SIG{'USR1'} = sub { ++$a };
+local $SIG{'USR2'} = sub { ++$b };
+
+kill SIGUSR1 => $$;
+ok(($a == 1) && ($b == 0), 'SIGUSR1');
+
+kill SIGUSR2 => $$;
+ok(($a == 1) && ($b == 1), 'SIGUSR2');