1 /* Copyright (C) 2003-2022 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8 
9    The GNU C Library 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 GNU
12    Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <https://www.gnu.org/licenses/>.  */
17 
18 #include <errno.h>
19 #include <signal.h>
20 #include <stdio.h>
21 #include <string.h>
22 #include <libc-diag.h>
23 
24 /* The sighold and sigrelse functions are deprecated.  */
25 DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations");
26 
27 static int
do_test(void)28 do_test (void)
29 {
30   int result = 0;
31   int e;
32 
33 #define RUN(test) \
34   errno = 0;								      \
35   e = test;								      \
36   if (e != -1)								      \
37     {									      \
38       printf ("%s returned %d\n", #test, e);				      \
39       result = 1;							      \
40     }									      \
41   else if (errno != EINVAL)						      \
42     {									      \
43       printf ("%s didn't set errno to EINVAL (%s instead)\n",		      \
44 	      #test, strerror (errno));					      \
45       result = 1;							      \
46     }
47 
48   RUN (sighold (-1));
49   RUN (sighold (_NSIG + 100));
50 
51   RUN (sigrelse (-1));
52   RUN (sigrelse (_NSIG + 100));
53 
54   return result;
55 }
56 
57 #define TEST_FUNCTION do_test ()
58 #include "../test-skeleton.c"
59