Filter out NPTL internal signals (BZ #22391)
[platform/upstream/glibc.git] / signal / tst-sigset.c
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>