summaryrefslogtreecommitdiff
path: root/test/sigreturn.c
blob: 246a3cee770c09e7685090df4452019d274f7779 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
 * Check that strace output contains RT_1 RT_3 RT_31 RT_32 here:
 *  rt_sigprocmask(SIG_BLOCK, [CHLD RT_1 RT_3 RT_31 RT_32], NULL, 8) = 0
 * and here:
 *  sigreturn() (mask [CHLD RT_1 RT_3 RT_31 RT_32]) = 0
 *
 * On x86, both 32-bit and 64-bit strace needs to be checked.
 */
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>

void null_handler(int sig)
{
}

int main(int argc, char *argv[])
{
	sigset_t set;
	sigemptyset(&set);
	sigaddset(&set, SIGCHLD);
	sigaddset(&set, 33);
	sigaddset(&set, 35);
	sigaddset(&set, 63);
	sigaddset(&set, 64);
	sigprocmask(SIG_BLOCK, &set, NULL);
	signal(SIGWINCH, null_handler);
	raise(SIGWINCH);
	return 0;
}