1 | /* Test sig*set functions. */ |
2 | |
3 | #include <signal.h> |
4 | |
5 | #include <support/check.h> |
6 | |
7 | static int |
8 | do_test (void) |
9 | { |
10 | sigset_t set; |
11 | TEST_VERIFY (sigemptyset (&set) == 0); |
12 | |
13 | #define VERIFY(set, sig) \ |
14 | TEST_VERIFY (sigismember (&set, sig) == 0); \ |
15 | TEST_VERIFY (sigaddset (&set, sig) == 0); \ |
16 | TEST_VERIFY (sigismember (&set, sig) != 0); \ |
17 | TEST_VERIFY (sigdelset (&set, sig) == 0); \ |
18 | TEST_VERIFY (sigismember (&set, sig) == 0) |
19 | |
20 | /* ISO C99 signals. */ |
21 | VERIFY (set, SIGINT); |
22 | VERIFY (set, SIGILL); |
23 | VERIFY (set, SIGABRT); |
24 | VERIFY (set, SIGFPE); |
25 | VERIFY (set, SIGSEGV); |
26 | VERIFY (set, SIGTERM); |
27 | |
28 | /* Historical signals specified by POSIX. */ |
29 | VERIFY (set, SIGHUP); |
30 | VERIFY (set, SIGQUIT); |
31 | VERIFY (set, SIGTRAP); |
32 | VERIFY (set, SIGKILL); |
33 | VERIFY (set, SIGBUS); |
34 | VERIFY (set, SIGSYS); |
35 | VERIFY (set, SIGPIPE); |
36 | VERIFY (set, SIGALRM); |
37 | |
38 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ |
39 | VERIFY (set, SIGURG); |
40 | VERIFY (set, SIGSTOP); |
41 | VERIFY (set, SIGTSTP); |
42 | VERIFY (set, SIGCONT); |
43 | VERIFY (set, SIGCHLD); |
44 | VERIFY (set, SIGTTIN); |
45 | VERIFY (set, SIGTTOU); |
46 | VERIFY (set, SIGPOLL); |
47 | VERIFY (set, SIGXCPU); |
48 | VERIFY (set, SIGXFSZ); |
49 | VERIFY (set, SIGVTALRM); |
50 | VERIFY (set, SIGPROF); |
51 | VERIFY (set, SIGUSR1); |
52 | VERIFY (set, SIGUSR2); |
53 | |
54 | /* Nonstandard signals found in all modern POSIX systems |
55 | (including both BSD and Linux). */ |
56 | VERIFY (set, SIGWINCH); |
57 | |
58 | /* Arch-specific signals. */ |
59 | #ifdef SIGEMT |
60 | VERIFY (set, SIGEMT); |
61 | #endif |
62 | #ifdef SIGLOST |
63 | VERIFY (set, SIGLOST); |
64 | #endif |
65 | #ifdef SIGINFO |
66 | VERIFY (set, SIGINFO); |
67 | #endif |
68 | #ifdef SIGSTKFLT |
69 | VERIFY (set, SIGSTKFLT); |
70 | #endif |
71 | #ifdef SIGPWR |
72 | VERIFY (set, SIGPWR); |
73 | #endif |
74 | |
75 | /* Read-time signals (POSIX.1b real-time extensions). If they are |
76 | supported SIGRTMAX value is greater than SIGRTMIN. */ |
77 | for (int rtsig = SIGRTMIN; rtsig <= SIGRTMAX; rtsig++) |
78 | { |
79 | VERIFY (set, rtsig); |
80 | } |
81 | |
82 | return 0; |
83 | } |
84 | |
85 | #include <support/test-driver.c> |
86 | |