OSDN Git Service

Replace FSF snail mail address with URLs
[uclinux-h8/uClibc.git] / test / nptl / tst-raise1.c
1 /* Copyright (C) 2003 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <http://www.gnu.org/licenses/>.  */
18
19 #include <errno.h>
20 #include <error.h>
21 #include <signal.h>
22 #include <stdlib.h>
23 #include <stdio.h>
24
25 volatile int count;
26
27 void
28 sh (int sig)
29 {
30   ++count;
31 }
32
33 int
34 main (void)
35 {
36   struct sigaction sa;
37   sa.sa_handler = sh;
38   sigemptyset (&sa.sa_mask);
39   sa.sa_flags = 0;
40   if (sigaction (SIGUSR1, &sa, NULL) < 0)
41     {
42       printf ("sigaction failed: %m\n");
43       exit (1);
44     }
45   if (raise (SIGUSR1) < 0)
46     {
47       printf ("first raise failed: %m\n");
48       exit (1);
49     }
50   if (raise (SIGUSR1) < 0)
51     {
52       printf ("second raise failed: %m\n");
53       exit (1);
54     }
55   if (count != 2)
56     {
57       printf ("signal handler not called 2 times\n");
58       exit (1);
59     }
60   exit (0);
61 }