tst-sigset.c 1.9 KB

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