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
}