Blame signal/tst-sigset.c

Packit 6c4009
/* Test sig*set functions.  */
Packit 6c4009
Packit 6c4009
#include <signal.h>
Packit 6c4009
Packit 6c4009
#include <support/check.h>
Packit 6c4009
Packit 6c4009
static int
Packit 6c4009
do_test (void)
Packit 6c4009
{
Packit 6c4009
  sigset_t set;
Packit 6c4009
  TEST_VERIFY (sigemptyset (&set) == 0);
Packit 6c4009
Packit 6c4009
#define VERIFY(set, sig)			\
Packit 6c4009
  TEST_VERIFY (sigismember (&set, sig) == 0);	\
Packit 6c4009
  TEST_VERIFY (sigaddset (&set, sig) == 0);	\
Packit 6c4009
  TEST_VERIFY (sigismember (&set, sig) != 0);	\
Packit 6c4009
  TEST_VERIFY (sigdelset (&set, sig) == 0);	\
Packit 6c4009
  TEST_VERIFY (sigismember (&set, sig) == 0)
Packit 6c4009
Packit 6c4009
  /* ISO C99 signals.  */
Packit 6c4009
  VERIFY (set, SIGINT);
Packit 6c4009
  VERIFY (set, SIGILL);
Packit 6c4009
  VERIFY (set, SIGABRT);
Packit 6c4009
  VERIFY (set, SIGFPE);
Packit 6c4009
  VERIFY (set, SIGSEGV);
Packit 6c4009
  VERIFY (set, SIGTERM);
Packit 6c4009
Packit 6c4009
  /* Historical signals specified by POSIX. */
Packit 6c4009
  VERIFY (set, SIGHUP);
Packit 6c4009
  VERIFY (set, SIGQUIT);
Packit 6c4009
  VERIFY (set, SIGTRAP);
Packit 6c4009
  VERIFY (set, SIGKILL);
Packit 6c4009
  VERIFY (set, SIGBUS);
Packit 6c4009
  VERIFY (set, SIGSYS);
Packit 6c4009
  VERIFY (set, SIGPIPE);
Packit 6c4009
  VERIFY (set, SIGALRM);
Packit 6c4009
Packit 6c4009
  /* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
Packit 6c4009
  VERIFY (set, SIGURG);
Packit 6c4009
  VERIFY (set, SIGSTOP);
Packit 6c4009
  VERIFY (set, SIGTSTP);
Packit 6c4009
  VERIFY (set, SIGCONT);
Packit 6c4009
  VERIFY (set, SIGCHLD);
Packit 6c4009
  VERIFY (set, SIGTTIN);
Packit 6c4009
  VERIFY (set, SIGTTOU);
Packit 6c4009
  VERIFY (set, SIGPOLL);
Packit 6c4009
  VERIFY (set, SIGXCPU);
Packit 6c4009
  VERIFY (set, SIGXFSZ);
Packit 6c4009
  VERIFY (set, SIGVTALRM);
Packit 6c4009
  VERIFY (set, SIGPROF);
Packit 6c4009
  VERIFY (set, SIGUSR1);
Packit 6c4009
  VERIFY (set, SIGUSR2);
Packit 6c4009
Packit 6c4009
  /* Nonstandard signals found in all modern POSIX systems
Packit 6c4009
     (including both BSD and Linux).  */
Packit 6c4009
  VERIFY (set, SIGWINCH);
Packit 6c4009
Packit 6c4009
  /* Arch-specific signals.  */
Packit 6c4009
#ifdef SIGEMT
Packit 6c4009
  VERIFY (set, SIGEMT);
Packit 6c4009
#endif
Packit 6c4009
#ifdef SIGLOST
Packit 6c4009
  VERIFY (set, SIGLOST);
Packit 6c4009
#endif
Packit 6c4009
#ifdef SIGINFO
Packit 6c4009
  VERIFY (set, SIGINFO);
Packit 6c4009
#endif
Packit 6c4009
#ifdef SIGSTKFLT
Packit 6c4009
  VERIFY (set, SIGSTKFLT);
Packit 6c4009
#endif
Packit 6c4009
#ifdef SIGPWR
Packit 6c4009
  VERIFY (set, SIGPWR);
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
  /* Read-time signals (POSIX.1b real-time extensions).  If they are
Packit 6c4009
     supported SIGRTMAX value is greater than SIGRTMIN.  */
Packit 6c4009
  for (int rtsig = SIGRTMIN; rtsig <= SIGRTMAX; rtsig++)
Packit 6c4009
    {
Packit 6c4009
      VERIFY (set, rtsig);
Packit 6c4009
    }
Packit 6c4009
Packit 6c4009
  return 0;
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
#include <support/test-driver.c>