diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/regress/lib/libc/sys/t_kill.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/regress/lib/libc/sys/t_kill.c b/src/regress/lib/libc/sys/t_kill.c index c92bbdd18b..871427cb8d 100644 --- a/src/regress/lib/libc/sys/t_kill.c +++ b/src/regress/lib/libc/sys/t_kill.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: t_kill.c,v 1.1.1.1 2019/11/19 19:57:03 bluhm Exp $ */ | 1 | /* $OpenBSD: t_kill.c,v 1.2 2021/07/29 15:33:17 anton Exp $ */ |
| 2 | /* $NetBSD: t_kill.c,v 1.1 2011/07/07 06:57:53 jruoho Exp $ */ | 2 | /* $NetBSD: t_kill.c,v 1.1 2011/07/07 06:57:53 jruoho Exp $ */ |
| 3 | 3 | ||
| 4 | /*- | 4 | /*- |
| @@ -60,6 +60,17 @@ ATF_TC_BODY(kill_basic, tc) | |||
| 60 | int sta; | 60 | int sta; |
| 61 | 61 | ||
| 62 | for (i = 0; i < __arraycount(sig); i++) { | 62 | for (i = 0; i < __arraycount(sig); i++) { |
| 63 | struct sigaction act, oact; | ||
| 64 | |||
| 65 | /* Ensure the signal is not ignored. */ | ||
| 66 | if (sig[i] != SIGKILL) { | ||
| 67 | memset(&act, 0, sizeof(act)); | ||
| 68 | act.sa_handler = SIG_DFL; | ||
| 69 | ATF_REQUIRE(sigaction(sig[i], &act, &oact) == 0); | ||
| 70 | } else { | ||
| 71 | ATF_REQUIRE(sigaction(sig[i], &act, &oact) != 0); | ||
| 72 | ATF_REQUIRE(errno == EINVAL); | ||
| 73 | } | ||
| 63 | 74 | ||
| 64 | pid = fork(); | 75 | pid = fork(); |
| 65 | ATF_REQUIRE(pid >= 0); | 76 | ATF_REQUIRE(pid >= 0); |
| @@ -78,6 +89,9 @@ ATF_TC_BODY(kill_basic, tc) | |||
| 78 | 89 | ||
| 79 | if (WIFSIGNALED(sta) == 0 || WTERMSIG(sta) != sig[i]) | 90 | if (WIFSIGNALED(sta) == 0 || WTERMSIG(sta) != sig[i]) |
| 80 | atf_tc_fail("kill(2) failed to kill child"); | 91 | atf_tc_fail("kill(2) failed to kill child"); |
| 92 | |||
| 93 | if (sig[i] != SIGKILL) | ||
| 94 | ATF_REQUIRE(sigaction(sig[i], &oact, NULL) == 0); | ||
| 81 | } | 95 | } |
| 82 | } | 96 | } |
| 83 | 97 | ||
