diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-02-15 05:03:49 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-02-15 05:03:49 +0000 |
commit | 6a22e84a33d80766d39a4ab10afe21873c633795 (patch) | |
tree | 39e264d71923985a7b6130382f5a2b1342d4f233 /test/signal/tst-sigset.c | |
parent | 4d0d43c40a4cf86fa330d4399105bb1a2d6e805e (diff) |
grab some more tests from glibc
Diffstat (limited to 'test/signal/tst-sigset.c')
-rw-r--r-- | test/signal/tst-sigset.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/signal/tst-sigset.c b/test/signal/tst-sigset.c new file mode 100644 index 000000000..bc1b05764 --- /dev/null +++ b/test/signal/tst-sigset.c @@ -0,0 +1,45 @@ +/* Test sig*set functions. */ + +#include <signal.h> +#include <string.h> +#include <errno.h> +#include <stdio.h> + +#define TEST_FUNCTION do_test () +static int +do_test (void) +{ + int result = 0; + int sig = -1; + +#define TRY(call) \ + if (call) \ + { \ + printf ("%s (sig = %d): %s\n", #call, sig, strerror(errno)); \ + result = 1; \ + } \ + else + + + sigset_t set; + TRY (sigemptyset (&set) != 0); + +#ifdef SIGRTMAX + int max_sig = SIGRTMAX; +#else + int max_sig = NSIG - 1; +#endif + + for (sig = 1; sig <= max_sig; ++sig) + { + TRY (sigismember (&set, sig) != 0); + TRY (sigaddset (&set, sig) != 0); + TRY (sigismember (&set, sig) == 0); + TRY (sigdelset (&set, sig) != 0); + TRY (sigismember (&set, sig) != 0); + } + + return result; +} + +#include "../test-skeleton.c" |