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
 }

Reply via email to