X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F02-sigusr.t;h=bfe2dc29ed9f56d198b1265c9a9a958ad89bf151;hb=8a4a3ba553f81cfdb679c19363f514efb04f29c1;hp=8a048e9598b90c5302d7fa006c6da248039157c7;hpb=133946d2bfe0a5d47755a8f182a76e2f57b72e20;p=perl%2Fmodules%2FIPC-MorseSignals.git diff --git a/t/02-sigusr.t b/t/02-sigusr.t index 8a048e9..bfe2dc2 100644 --- a/t/02-sigusr.t +++ b/t/02-sigusr.t @@ -1,36 +1,19 @@ #!perl -T +use strict; +use warnings; + use Test::More tests => 2; -use POSIX qw/SIGTERM SIGKILL EXIT_FAILURE EXIT_SUCCESS/; +use POSIX qw/SIGUSR1 SIGUSR2/; + +my ($a, $b) = (0, 0); + +local $SIG{'USR1'} = sub { ++$a }; +local $SIG{'USR2'} = sub { ++$b }; -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; - } - my $ret = EXIT_FAILURE; - eval { - local $SIG{ALRM} = sub { die }; - alarm 1; - kill $n, $pid; - waitpid $pid, 0; - $ret = $?; - alarm 0; - }; - if ($@) { - kill SIGINT, $pid; - kill SIGTERM, $pid; - kill SIGKILL, $pid; - die "$s: $@"; - } - ok($ret == EXIT_SUCCESS, $s); -} +kill SIGUSR1 => $$; +ok(($a == 1) && ($b == 0), 'SIGUSR1'); -sleep 1; -trysig SIGUSR1, 'USR1'; -trysig SIGUSR2, 'USR2'; +kill SIGUSR2 => $$; +ok(($a == 1) && ($b == 1), 'SIGUSR2');