1 /* 2 * Copyright (c) 2003, Intel Corporation. All rights reserved. 3 * Created by: salwan.searty REMOVE-THIS AT intel DOT com 4 * This file is licensed under the GPL license. For the full content 5 * of this license, see the COPYING file at the top level of this 6 * source tree. 7 8 This program tests the assertion that the signal will be added to the 9 signal mask before its handler is executed. 10 11 */ 12 13 #define _XOPEN_SOURCE 600 14 15 #include <signal.h> 16 #include <stdio.h> 17 #include <stdlib.h> 18 #include "posixtest.h" 19 20 int signal_blocked = 0; 21 22 void myhandler(int signo) 23 { 24 printf("SIGCHLD called. Inside handler\n"); 25 sigset_t mask; 26 sigprocmask(SIG_SETMASK, NULL, &mask); 27 if (sigismember(&mask, SIGCHLD)) { 28 signal_blocked = 1; 29 } 30 } 31 32 int main(void) 33 { 34 if (sigset(SIGCHLD, myhandler) == SIG_ERR) { 35 perror("Unexpected error while using sigset()"); 36 return PTS_UNRESOLVED; 37 } 38 39 raise(SIGCHLD); 40 41 if (signal_blocked != 1) { 42 printf 43 ("Test FAILED: handler was called even though default was expected\n"); 44 return PTS_FAIL; 45 } 46 return PTS_PASS; 47 } 48