Blame gnulib/tests/test-signal-h.c

Packit Service a2ae7a
/* Test of <signal.h> substitute.
Packit Service a2ae7a
   Copyright (C) 2009-2019 Free Software Foundation, Inc.
Packit Service a2ae7a
Packit Service a2ae7a
   This program is free software: you can redistribute it and/or modify
Packit Service a2ae7a
   it under the terms of the GNU General Public License as published by
Packit Service a2ae7a
   the Free Software Foundation; either version 3 of the License, or
Packit Service a2ae7a
   (at your option) any later version.
Packit Service a2ae7a
Packit Service a2ae7a
   This program is distributed in the hope that it will be useful,
Packit Service a2ae7a
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service a2ae7a
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service a2ae7a
   GNU General Public License for more details.
Packit Service a2ae7a
Packit Service a2ae7a
   You should have received a copy of the GNU General Public License
Packit Service a2ae7a
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
Packit Service a2ae7a
Packit Service a2ae7a
/* Written by Eric Blake <ebb9@byu.net>, 2009.  */
Packit Service a2ae7a
Packit Service a2ae7a
#include <config.h>
Packit Service a2ae7a
Packit Service a2ae7a
#include <signal.h>
Packit Service a2ae7a
Packit Service a2ae7a
/* Check for required types.  */
Packit Service a2ae7a
struct
Packit Service a2ae7a
{
Packit Service a2ae7a
  size_t a;
Packit Service a2ae7a
  uid_t b;
Packit Service a2ae7a
  volatile sig_atomic_t c;
Packit Service a2ae7a
  sigset_t d;
Packit Service a2ae7a
  pid_t e;
Packit Service a2ae7a
#if 0
Packit Service a2ae7a
  /* Not guaranteed by gnulib.  */
Packit Service a2ae7a
  pthread_t f;
Packit Service a2ae7a
  struct timespec g;
Packit Service a2ae7a
#endif
Packit Service a2ae7a
} s;
Packit Service a2ae7a
Packit Service a2ae7a
/* Check that NSIG is defined.  */
Packit Service a2ae7a
int nsig = NSIG;
Packit Service a2ae7a
Packit Service a2ae7a
int
Packit Service a2ae7a
main (void)
Packit Service a2ae7a
{
Packit Service a2ae7a
  switch (0)
Packit Service a2ae7a
    {
Packit Service a2ae7a
      /* The following are guaranteed by C.  */
Packit Service a2ae7a
    case 0:
Packit Service a2ae7a
    case SIGABRT:
Packit Service a2ae7a
    case SIGFPE:
Packit Service a2ae7a
    case SIGILL:
Packit Service a2ae7a
    case SIGINT:
Packit Service a2ae7a
    case SIGSEGV:
Packit Service a2ae7a
    case SIGTERM:
Packit Service a2ae7a
      /* The following is guaranteed by gnulib.  */
Packit Service a2ae7a
#if GNULIB_SIGPIPE || defined SIGPIPE
Packit Service a2ae7a
    case SIGPIPE:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
      /* Ensure no conflict with other standardized names.  */
Packit Service a2ae7a
#ifdef SIGALRM
Packit Service a2ae7a
    case SIGALRM:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
      /* On Haiku, SIGBUS is mistakenly equal to SIGSEGV.  */
Packit Service a2ae7a
#if defined SIGBUS && SIGBUS != SIGSEGV
Packit Service a2ae7a
    case SIGBUS:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGCHLD
Packit Service a2ae7a
    case SIGCHLD:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGCONT
Packit Service a2ae7a
    case SIGCONT:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGHUP
Packit Service a2ae7a
    case SIGHUP:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGKILL
Packit Service a2ae7a
    case SIGKILL:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGQUIT
Packit Service a2ae7a
    case SIGQUIT:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGSTOP
Packit Service a2ae7a
    case SIGSTOP:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGTSTP
Packit Service a2ae7a
    case SIGTSTP:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGTTIN
Packit Service a2ae7a
    case SIGTTIN:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGTTOU
Packit Service a2ae7a
    case SIGTTOU:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGUSR1
Packit Service a2ae7a
    case SIGUSR1:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGUSR2
Packit Service a2ae7a
    case SIGUSR2:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGSYS
Packit Service a2ae7a
    case SIGSYS:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGTRAP
Packit Service a2ae7a
    case SIGTRAP:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGURG
Packit Service a2ae7a
    case SIGURG:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGVTALRM
Packit Service a2ae7a
    case SIGVTALRM:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGXCPU
Packit Service a2ae7a
    case SIGXCPU:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
#ifdef SIGXFSZ
Packit Service a2ae7a
    case SIGXFSZ:
Packit Service a2ae7a
#endif
Packit Service a2ae7a
      /* SIGRTMIN and SIGRTMAX need not be compile-time constants.  */
Packit Service a2ae7a
#if 0
Packit Service a2ae7a
# ifdef SIGRTMIN
Packit Service a2ae7a
    case SIGRTMIN:
Packit Service a2ae7a
# endif
Packit Service a2ae7a
# ifdef SIGRTMAX
Packit Service a2ae7a
    case SIGRTMAX:
Packit Service a2ae7a
# endif
Packit Service a2ae7a
#endif
Packit Service a2ae7a
      ;
Packit Service a2ae7a
    }
Packit Service a2ae7a
  return s.a + s.b + s.c + s.e;
Packit Service a2ae7a
}