• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
myhandler(int signo)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 
main(void)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