blob: 6493a85f7751c10130901a295edc59174b2c9abf [file] [log] [blame]
sewardjb2572b52011-06-26 09:36:38 +00001#include <stdio.h>
2#include <signal.h>
3#include <unistd.h>
philippe886fde32012-03-29 21:56:47 +00004#include <stdlib.h>
sewardjb2572b52011-06-26 09:36:38 +00005
philippe886fde32012-03-29 21:56:47 +00006static int sigalrm_received = 0;
sewardjb2572b52011-06-26 09:36:38 +00007static void sigalrm_handler(int signr)
8{
9 sigalrm_received++;
10}
11
philippe886fde32012-03-29 21:56:47 +000012static int breakme = 0;
13
sewardjb2572b52011-06-26 09:36:38 +000014int main (int argc, char *argv[])
15{
16 struct sigaction sa;
17 fprintf(stderr, "starting ...\n");
18 sa.sa_handler = sigalrm_handler;
19 sigemptyset(&sa.sa_mask);
20 sa.sa_flags = 0;
sewardjf5194b32011-07-04 22:00:41 +000021
sewardjb2572b52011-06-26 09:36:38 +000022 if (sigaction (SIGALRM, &sa, NULL) != 0)
23 perror("sigaction");
24 if (kill(getpid(), SIGALRM) != 0)
25 perror("kill 1");
26
27 if (sigalrm_received == 1)
28 fprintf (stderr, "ok: 1st SIGALRM received\n");
29 else
30 fprintf (stderr, "wrong 1st: unexpected value %d sigalrm_received\n",
31 sigalrm_received);
32
33 if (kill(getpid(), SIGALRM) != 0)
34 perror("kill 2");
35
36 if (sigalrm_received == 2)
37 fprintf (stderr, "ok: 2nd SIGALRM received\n");
38 else
39 fprintf (stderr, "wrong 2nd: unexpected value %d sigalrm_received\n",
40 sigalrm_received);
41
philippe886fde32012-03-29 21:56:47 +000042 system("../tests/true");
43 breakme++;
sewardjb2572b52011-06-26 09:36:38 +000044 return 0;
45}