Module Name:    src
Committed By:   njoly
Date:           Wed Jun 13 11:45:18 UTC 2012

Modified Files:
        src/tests/lib/libc/gen: t_siginfo.c

Log Message:
Skip sigbus_adraln testcase on alpha unless global
machdep.unaligned_sigbus sysctl is enabled.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/tests/lib/libc/gen/t_siginfo.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/lib/libc/gen/t_siginfo.c
diff -u src/tests/lib/libc/gen/t_siginfo.c:1.17 src/tests/lib/libc/gen/t_siginfo.c:1.18
--- src/tests/lib/libc/gen/t_siginfo.c:1.17	Mon Apr 23 15:07:56 2012
+++ src/tests/lib/libc/gen/t_siginfo.c	Wed Jun 13 11:45:17 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: t_siginfo.c,v 1.17 2012/04/23 15:07:56 martin Exp $ */
+/* $NetBSD: t_siginfo.c,v 1.18 2012/06/13 11:45:17 njoly Exp $ */
 
 /*-
  * Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -31,6 +31,7 @@
 
 #include <sys/inttypes.h>
 #include <sys/resource.h>
+#include <sys/sysctl.h>
 #include <sys/time.h>
 #include <sys/ucontext.h>
 #include <sys/wait.h>
@@ -441,8 +442,21 @@ ATF_TC_HEAD(sigbus_adraln, tc)
 
 ATF_TC_BODY(sigbus_adraln, tc)
 {
+	const char *arch = atf_config_get("atf_arch");
 	struct sigaction sa;
 
+	if (strcmp(arch, "alpha") == 0) {
+		int rv, val;
+		size_t len = sizeof(val);
+		rv = sysctlbyname("machdep.unaligned_sigbus", &val, &len,
+			NULL, 0);
+		ATF_REQUIRE(rv == 0);
+		if (val == 0)
+			atf_tc_skip("SIGBUS signal not enabled for"
+				    " unaligned accesses");
+
+	}
+
 	sa.sa_flags = SA_SIGINFO;
 	sa.sa_sigaction = sigbus_action;
 	sigemptyset(&sa.sa_mask);
@@ -458,8 +472,7 @@ ATF_TC_BODY(sigbus_adraln, tc)
 	addr = calloc(2, sizeof(int));
 	ATF_REQUIRE(addr != NULL);
 
-	if (strcmp(atf_config_get("atf_arch"), "i386") == 0 ||
-	    strcmp(atf_config_get("atf_arch"), "x86_64") == 0) {
+	if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
 		if (system("cpuctl identify 0 | grep -q QEMU") == 0) {
 			atf_tc_expect_fail("QEMU fails to trap unaligned "
 			    "accesses");

Reply via email to