Module Name: src Committed By: kamil Date: Mon May 21 08:49:03 UTC 2018
Modified Files: src/tests/kernel: h_segv.c t_trapsignal.sh Log Message: Add new ATF test: t_trapsignal:trap_ignore Test ignored trap with right exit code. This test passes. Sponsored by <The NetBSD Foundation> To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/tests/kernel/h_segv.c cvs rdiff -u -r1.1 -r1.2 src/tests/kernel/t_trapsignal.sh Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/kernel/h_segv.c diff -u src/tests/kernel/h_segv.c:1.2 src/tests/kernel/h_segv.c:1.3 --- src/tests/kernel/h_segv.c:1.2 Fri Dec 8 14:40:45 2017 +++ src/tests/kernel/h_segv.c Mon May 21 08:49:03 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: h_segv.c,v 1.2 2017/12/08 14:40:45 christos Exp $ */ +/* $NetBSD: h_segv.c,v 1.3 2018/05/21 08:49:03 kamil Exp $ */ /*- * Copyright (c) 2017 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__RCSID("$NetBSD: h_segv.c,v 1.2 2017/12/08 14:40:45 christos Exp $"); +__RCSID("$NetBSD: h_segv.c,v 1.3 2018/05/21 08:49:03 kamil Exp $"); #include <stdio.h> #include <string.h> @@ -45,6 +45,7 @@ static int flags; #define F_RECURSE 1 #define F_HANDLE 2 #define F_MASK 4 +#define F_IGNORE 8 static struct { const char *n; @@ -53,6 +54,7 @@ static struct { { "recurse", F_RECURSE }, { "handle", F_HANDLE }, { "mask", F_MASK }, + { "ignore", F_IGNORE } }; static void @@ -112,6 +114,16 @@ main(int argc, char *argv[]) err(EXIT_FAILURE, "sigprocmask"); } + if (flags & F_IGNORE) { + struct sigaction sa; + + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = SIG_IGN; + sigemptyset(&sa.sa_mask); + if (sigaction(SIGSEGV, &sa, NULL) == -1) + err(EXIT_FAILURE, "sigaction"); + } + *p = 1; return EXIT_SUCCESS; } Index: src/tests/kernel/t_trapsignal.sh diff -u src/tests/kernel/t_trapsignal.sh:1.1 src/tests/kernel/t_trapsignal.sh:1.2 --- src/tests/kernel/t_trapsignal.sh:1.1 Thu Dec 7 19:46:40 2017 +++ src/tests/kernel/t_trapsignal.sh Mon May 21 08:49:03 2018 @@ -1,4 +1,4 @@ -# $NetBSD: t_trapsignal.sh,v 1.1 2017/12/07 19:46:40 christos Exp $ +# $NetBSD: t_trapsignal.sh,v 1.2 2018/05/21 08:49:03 kamil Exp $ # # Copyright (c) 2017 The NetBSD Foundation, Inc. # All rights reserved. @@ -85,10 +85,23 @@ trap_handle_recurse_body() ${HELPER} handle recurse } +atf_test_case trap_ignore +trap_ignore() +{ + atf_set "descr" "Test ignored trap with right exit code" +} + +trap_ignore_body() +{ + atf_check -s signal:11 -o "inline:" -e "inline:" \ + ${HELPER} ignore +} + atf_init_test_cases() { atf_add_test_case trap_simple atf_add_test_case trap_handle atf_add_test_case trap_mask atf_add_test_case trap_handle_recurse + atf_add_test_case trap_ignore }