blob: f7b5bc290b9b646940d0c65b931c5527dddbd47e [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}
philippea3d8c672012-03-30 20:25:26 +000011static int sigrtmin_received = 0;
12static void sigrtmin_handler(int signr)
13{
14 sigrtmin_received++;
15}
sewardjb2572b52011-06-26 09:36:38 +000016
philippe886fde32012-03-29 21:56:47 +000017static int breakme = 0;
18
sewardjb2572b52011-06-26 09:36:38 +000019int main (int argc, char *argv[])
20{
21 struct sigaction sa;
22 fprintf(stderr, "starting ...\n");
23 sa.sa_handler = sigalrm_handler;
24 sigemptyset(&sa.sa_mask);
25 sa.sa_flags = 0;
sewardjf5194b32011-07-04 22:00:41 +000026
sewardjb2572b52011-06-26 09:36:38 +000027 if (sigaction (SIGALRM, &sa, NULL) != 0)
28 perror("sigaction");
29 if (kill(getpid(), SIGALRM) != 0)
30 perror("kill 1");
31
32 if (sigalrm_received == 1)
33 fprintf (stderr, "ok: 1st SIGALRM received\n");
34 else
35 fprintf (stderr, "wrong 1st: unexpected value %d sigalrm_received\n",
36 sigalrm_received);
37
38 if (kill(getpid(), SIGALRM) != 0)
39 perror("kill 2");
40
41 if (sigalrm_received == 2)
42 fprintf (stderr, "ok: 2nd SIGALRM received\n");
43 else
44 fprintf (stderr, "wrong 2nd: unexpected value %d sigalrm_received\n",
45 sigalrm_received);
46
philippe886fde32012-03-29 21:56:47 +000047 system("../tests/true");
48 breakme++;
philippea3d8c672012-03-30 20:25:26 +000049
50 sa.sa_handler = sigrtmin_handler;
51 sigemptyset(&sa.sa_mask);
52 sa.sa_flags = 0;
53
54 if (sigaction (SIGRTMIN, &sa, NULL) != 0)
55 perror("sigaction");
56 if (kill(getpid(), SIGRTMIN) != 0)
57 perror("kill sigrtmin");
58 if (sigrtmin_received == 1)
59 fprintf (stderr, "ok: SIGRTMIN received\n");
60 else
61 fprintf (stderr, "wrong sigrtmin: unexpected value %d sigrtmin_received\n",
62 sigrtmin_received);
sewardjb2572b52011-06-26 09:36:38 +000063 return 0;
64}