]> granicus.if.org Git - strace/blob - tests/qual_inject-signal.c
Update copyright headers
[strace] / tests / qual_inject-signal.c
1 /*
2  * Check that signal injection works properly.
3  *
4  * Copyright (c) 2017-2018 Dmitry V. Levin <ldv@altlinux.org>
5  * All rights reserved.
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  */
9
10 #include "tests.h"
11 #include <signal.h>
12 #include <unistd.h>
13 #include <asm/unistd.h>
14
15 static void
16 handler(int sig)
17 {
18         syscall(__NR_exit_group, 0);
19 }
20
21 int
22 main(void)
23 {
24         const struct sigaction act = { .sa_handler = handler };
25         if (sigaction(SIGUSR1, &act, NULL))
26                 perror_msg_and_fail("sigaction");
27
28         sigset_t mask;
29         sigemptyset(&mask);
30         sigaddset(&mask, SIGUSR1);
31         if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
32                 perror_msg_and_fail("sigprocmask");
33
34         syscall(__NR_chdir, ".");
35         syscall(__NR_exit_group, 1);
36         return 1;
37 }