diff options
| author | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:10:10 +0000 | 
|---|---|---|
| committer | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:10:10 +0000 | 
| commit | a334319f6530564d22e775935d9c91663623a1b4 (patch) | |
| tree | b5877475619e4c938e98757d518bb1e9cbead751 /linuxthreads/tst-signal.c | |
| parent | 0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (diff) | |
| download | glibc-a334319f6530564d22e775935d9c91663623a1b4.tar.gz | |
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
Diffstat (limited to 'linuxthreads/tst-signal.c')
| -rw-r--r-- | linuxthreads/tst-signal.c | 64 | 
1 files changed, 64 insertions, 0 deletions
| diff --git a/linuxthreads/tst-signal.c b/linuxthreads/tst-signal.c new file mode 100644 index 0000000000..5eb0170c6c --- /dev/null +++ b/linuxthreads/tst-signal.c @@ -0,0 +1,64 @@ +/* Test sigaction wrapper.  */ +/* Copyright (C) 2002 Free Software Foundation, Inc. +   This file is part of the GNU C Library. +   Contributed by Andreas Schwab <schwab@suse.de>. + +   The GNU C Library is free software; you can redistribute it and/or +   modify it under the terms of the GNU Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 of the License, or (at your option) any later version. + +   The GNU C Library is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +   Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, write to the Free +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +   02111-1307 USA.  */ + +#include <stdio.h> +#include <stdlib.h> +#include <signal.h> + +int +main (int argc, char *argv[]) +{ +  struct sigaction old_sa, new_sa; + +  if (sigaction (SIGHUP, NULL, &old_sa) < 0) +    { +      printf ("cannot get signal action for SIGHUP: %m\n"); +      exit (1); +    } + +  if (old_sa.sa_handler != SIG_IGN) +    { +      printf ("SIGHUP action should be SIG_IGN, is %p\n", +	      (void *) old_sa.sa_handler); +      exit (1); +    } + +  new_sa.sa_handler = SIG_DFL; +  if (sigaction (SIGHUP, &new_sa, NULL) < 0) +    { +      printf ("cannot set signal action for SIGHUP: %m\n"); +      exit (1); +    } + +  if (sigaction (SIGHUP, NULL, &old_sa) < 0) +    { +      printf ("cannot get signal action for SIGHUP: %m\n"); +      exit (1); +    } + +  if (old_sa.sa_handler != SIG_DFL) +    { +      printf ("SIGHUP action should be SIG_DFL, is %p\n", +	      (void *) old_sa.sa_handler); +      exit (1); +    } + +  return 0; +} | 
