~ubuntu-branches/ubuntu/utopic/coreutils/utopic-proposed

« back to all changes in this revision

Viewing changes to gnulib-tests/test-signal-h.c

  • Committer: Package Import Robot
  • Author(s): Colin Watson
  • Date: 2012-11-28 03:03:42 UTC
  • mfrom: (8.3.4 sid)
  • Revision ID: package-import@ubuntu.com-20121128030342-21zanj8354gas5gr
Tags: 8.20-3ubuntu1
* Resynchronise with Debian.  Remaining changes:
  - Make 'uname -i -p' return the real processor/hardware, instead of
    unknown.
  - Build-depend on gettext:any instead of on gettext, so that apt-get can
    properly resolve build-dependencies on the tool when cross-building.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Test of <signal.h> substitute.
 
2
   Copyright (C) 2009-2012 Free Software Foundation, Inc.
 
3
 
 
4
   This program is free software: you can redistribute it and/or modify
 
5
   it under the terms of the GNU General Public License as published by
 
6
   the Free Software Foundation; either version 3 of the License, or
 
7
   (at your option) any later version.
 
8
 
 
9
   This program is distributed in the hope that it will be useful,
 
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
   GNU General Public License for more details.
 
13
 
 
14
   You should have received a copy of the GNU General Public License
 
15
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
16
 
 
17
/* Written by Eric Blake <ebb9@byu.net>, 2009.  */
 
18
 
 
19
#include <config.h>
 
20
 
 
21
#include <signal.h>
 
22
 
 
23
/* Check for required types.  */
 
24
struct
 
25
{
 
26
  size_t a;
 
27
  uid_t b;
 
28
  volatile sig_atomic_t c;
 
29
  sigset_t d;
 
30
  pid_t e;
 
31
#if 0
 
32
  /* Not guaranteed by gnulib.  */
 
33
  pthread_t f;
 
34
  struct timespec g;
 
35
#endif
 
36
} s;
 
37
 
 
38
/* Check that NSIG is defined.  */
 
39
int nsig = NSIG;
 
40
 
 
41
int
 
42
main (void)
 
43
{
 
44
  switch (0)
 
45
    {
 
46
      /* The following are guaranteed by C.  */
 
47
    case 0:
 
48
    case SIGABRT:
 
49
    case SIGFPE:
 
50
    case SIGILL:
 
51
    case SIGINT:
 
52
    case SIGSEGV:
 
53
    case SIGTERM:
 
54
      /* The following is guaranteed by gnulib.  */
 
55
#if GNULIB_SIGPIPE || defined SIGPIPE
 
56
    case SIGPIPE:
 
57
#endif
 
58
      /* Ensure no conflict with other standardized names.  */
 
59
#ifdef SIGALRM
 
60
    case SIGALRM:
 
61
#endif
 
62
      /* On Haiku, SIGBUS is mistakenly equal to SIGSEGV.  */
 
63
#if defined SIGBUS && SIGBUS != SIGSEGV
 
64
    case SIGBUS:
 
65
#endif
 
66
#ifdef SIGCHLD
 
67
    case SIGCHLD:
 
68
#endif
 
69
#ifdef SIGCONT
 
70
    case SIGCONT:
 
71
#endif
 
72
#ifdef SIGHUP
 
73
    case SIGHUP:
 
74
#endif
 
75
#ifdef SIGKILL
 
76
    case SIGKILL:
 
77
#endif
 
78
#ifdef SIGQUIT
 
79
    case SIGQUIT:
 
80
#endif
 
81
#ifdef SIGSTOP
 
82
    case SIGSTOP:
 
83
#endif
 
84
#ifdef SIGTSTP
 
85
    case SIGTSTP:
 
86
#endif
 
87
#ifdef SIGTTIN
 
88
    case SIGTTIN:
 
89
#endif
 
90
#ifdef SIGTTOU
 
91
    case SIGTTOU:
 
92
#endif
 
93
#ifdef SIGUSR1
 
94
    case SIGUSR1:
 
95
#endif
 
96
#ifdef SIGUSR2
 
97
    case SIGUSR2:
 
98
#endif
 
99
#ifdef SIGSYS
 
100
    case SIGSYS:
 
101
#endif
 
102
#ifdef SIGTRAP
 
103
    case SIGTRAP:
 
104
#endif
 
105
#ifdef SIGURG
 
106
    case SIGURG:
 
107
#endif
 
108
#ifdef SIGVTALRM
 
109
    case SIGVTALRM:
 
110
#endif
 
111
#ifdef SIGXCPU
 
112
    case SIGXCPU:
 
113
#endif
 
114
#ifdef SIGXFSZ
 
115
    case SIGXFSZ:
 
116
#endif
 
117
      /* SIGRTMIN and SIGRTMAX need not be compile-time constants.  */
 
118
#if 0
 
119
# ifdef SIGRTMIN
 
120
    case SIGRTMIN:
 
121
# endif
 
122
# ifdef SIGRTMAX
 
123
    case SIGRTMAX:
 
124
# endif
 
125
#endif
 
126
      ;
 
127
    }
 
128
  return s.a + s.b + s.c + s.e;
 
129
}