]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/uclibc/lib/contrib/uclibc/test/signal/tst-sigset.c
update
[l4.git] / l4 / pkg / uclibc / lib / contrib / uclibc / test / signal / tst-sigset.c
1 /* Test sig*set functions.  */
2
3 #include <signal.h>
4 #include <string.h>
5 #include <errno.h>
6 #include <stdio.h>
7
8 #define TEST_FUNCTION do_test ()
9 static int
10 do_test (void)
11 {
12   int result = 0;
13   int sig = -1;
14
15 #define TRY(call)                                                             \
16   if (call)                                                                   \
17     {                                                                         \
18       printf ("%s (sig = %d): %s\n", #call, sig, strerror(errno));                            \
19       result = 1;                                                             \
20     }                                                                         \
21   else
22
23
24   sigset_t set;
25   TRY (sigemptyset (&set) != 0);
26
27 #ifdef SIGRTMAX
28   int max_sig = SIGRTMAX;
29 #else
30   int max_sig = NSIG - 1;
31 #endif
32
33   for (sig = 1; sig <= max_sig; ++sig)
34     {
35       TRY (sigismember (&set, sig) != 0);
36       TRY (sigaddset (&set, sig) != 0);
37       TRY (sigismember (&set, sig) == 0);
38       TRY (sigdelset (&set, sig) != 0);
39       TRY (sigismember (&set, sig) != 0);
40     }
41
42   return result;
43 }
44
45 #include "../test-skeleton.c"