summaryrefslogtreecommitdiffstats
path: root/contrib/netbsd-tests/lib/libc
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2014-11-01 20:45:45 +0000
committerngie <ngie@FreeBSD.org>2014-11-01 20:45:45 +0000
commitd22d538f49c37823fc2233c7ce52798088736529 (patch)
tree18bb1c5e0c948889a12e7fa564f91101018bfcd3 /contrib/netbsd-tests/lib/libc
parentd38d28efa1770a9bd82fced1a26dc8b84616b209 (diff)
downloadFreeBSD-src-d22d538f49c37823fc2233c7ce52798088736529.zip
FreeBSD-src-d22d538f49c37823fc2233c7ce52798088736529.tar.gz
Port t_mincore to FreeBSD
Mark :mincore_resid as atf_tc_expect_fail on FreeBSD because of new bug discovered in running the tests (it succeeded from earlier on in the year to September/October on FreeBSD, at least) Submitted by: pho
Diffstat (limited to 'contrib/netbsd-tests/lib/libc')
-rw-r--r--contrib/netbsd-tests/lib/libc/sys/t_mincore.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/contrib/netbsd-tests/lib/libc/sys/t_mincore.c b/contrib/netbsd-tests/lib/libc/sys/t_mincore.c
index 553207a..8a23877 100644
--- a/contrib/netbsd-tests/lib/libc/sys/t_mincore.c
+++ b/contrib/netbsd-tests/lib/libc/sys/t_mincore.c
@@ -74,6 +74,10 @@ __RCSID("$NetBSD: t_mincore.c,v 1.8 2012/06/08 07:18:58 martin Exp $");
#include <unistd.h>
#include <sys/resource.h>
+#ifdef __FreeBSD__
+#include <sys/stat.h>
+#endif
+
static long page = 0;
static const char path[] = "mincore";
static size_t check_residency(void *, size_t);
@@ -121,8 +125,10 @@ ATF_TC_BODY(mincore_err, tc)
ATF_REQUIRE(vec != NULL);
ATF_REQUIRE(map != MAP_FAILED);
+#ifdef __NetBSD__
errno = 0;
ATF_REQUIRE_ERRNO(EINVAL, mincore(map, 0, vec) == -1);
+#endif
errno = 0;
ATF_REQUIRE_ERRNO(ENOMEM, mincore(0, page, vec) == -1);
@@ -187,13 +193,24 @@ ATF_TC_BODY(mincore_resid, tc)
npgs = 128;
+#ifdef __FreeBSD__
+ addr = mmap(NULL, npgs * page, PROT_READ | PROT_WRITE,
+ MAP_ANON | MAP_PRIVATE, -1, (off_t)0);
+#else
addr = mmap(NULL, npgs * page, PROT_READ | PROT_WRITE,
MAP_ANON | MAP_PRIVATE | MAP_WIRED, -1, (off_t)0);
+#endif
if (addr == MAP_FAILED)
atf_tc_skip("could not mmap wired anonymous test area, system "
"might be low on memory");
+#ifdef __FreeBSD__
+ atf_tc_expect_fail("the following calls fail; this seems to be a new "
+ "issue (didn't occur in 07/2014)");
+
+ ATF_REQUIRE(mlock(addr, npgs * page) == 0);
+#endif
ATF_REQUIRE(check_residency(addr, npgs) == npgs);
ATF_REQUIRE(munmap(addr, npgs * page) == 0);
@@ -238,12 +255,16 @@ ATF_TC_BODY(mincore_resid, tc)
(void)munlockall();
ATF_REQUIRE(madvise(addr2, npgs * page, MADV_FREE) == 0);
+#ifdef __NetBSD__
ATF_REQUIRE(check_residency(addr2, npgs) == 0);
+#endif
(void)memset(addr, 0, npgs * page);
ATF_REQUIRE(madvise(addr, npgs * page, MADV_FREE) == 0);
+#ifdef __NetBSD__
ATF_REQUIRE(check_residency(addr, npgs) == 0);
+#endif
(void)munmap(addr, npgs * page);
(void)munmap(addr2, npgs * page);
OpenPOWER on IntegriCloud