Module Name: src Committed By: jym Date: Wed Jul 20 22:53:44 UTC 2011
Modified Files: src/tests/lib/libc/sys: t_mprotect.c Log Message: Modify exec test to be more resilient regarding partial exec protection: skip test instead of returning a failure that could be misinterpreted. Suggested by Jukka in private mail. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/tests/lib/libc/sys/t_mprotect.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/sys/t_mprotect.c diff -u src/tests/lib/libc/sys/t_mprotect.c:1.2 src/tests/lib/libc/sys/t_mprotect.c:1.3 --- src/tests/lib/libc/sys/t_mprotect.c:1.2 Mon Jul 18 23:16:11 2011 +++ src/tests/lib/libc/sys/t_mprotect.c Wed Jul 20 22:53:44 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: t_mprotect.c,v 1.2 2011/07/18 23:16:11 jym Exp $ */ +/* $NetBSD: t_mprotect.c,v 1.3 2011/07/20 22:53:44 jym Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_mprotect.c,v 1.2 2011/07/18 23:16:11 jym Exp $"); +__RCSID("$NetBSD: t_mprotect.c,v 1.3 2011/07/20 22:53:44 jym Exp $"); #include <sys/param.h> #include <sys/mman.h> @@ -224,21 +224,23 @@ (void)wait(&sta); + ATF_REQUIRE(munmap(map, page) == 0); + ATF_REQUIRE(WIFEXITED(sta) != 0); switch (xp_support) { case PARTIAL_XP: - /* Partial protection might fail: indicate it */ - ATF_CHECK_MSG(WEXITSTATUS(sta) == SIGSEGV, - "Host only supports partial executable space protection"); + /* Partial protection might fail; skip the test when it does */ + if (WEXITSTATUS(sta) != SIGSEGV) { + atf_tc_skip("Host only supports " + "partial executable space protection"); + } break; case PERPAGE_XP: default: /* Per-page --x protection should not fail */ ATF_REQUIRE(WEXITSTATUS(sta) == SIGSEGV); break; } - - ATF_REQUIRE(munmap(map, page) == 0); } ATF_TC(mprotect_pax);