summaryrefslogtreecommitdiffstats
path: root/contrib/netbsd-tests/lib/libc
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2014-10-12 21:53:13 +0000
committerngie <ngie@FreeBSD.org>2014-10-12 21:53:13 +0000
commit7a7f1f864ed680bdb4c5dff5643a1e7d77a6984f (patch)
tree2af1855b3edb27c1e544564ee61b6d0e801054fb /contrib/netbsd-tests/lib/libc
parent71bc2d78463933cae06f488e3121ad429ca6786f (diff)
downloadFreeBSD-src-7a7f1f864ed680bdb4c5dff5643a1e7d77a6984f.zip
FreeBSD-src-7a7f1f864ed680bdb4c5dff5643a1e7d77a6984f.tar.gz
Implement 64MB memory limit for test to ensure that it fails reliably in
600 seconds; it would previously fail inconsistently when run in some virtual machine configurations This patch might need to be reverted or revisited later (see the attached PR for more details) PR: 169302 Submitted by: pho Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'contrib/netbsd-tests/lib/libc')
-rw-r--r--contrib/netbsd-tests/lib/libc/regex/t_exhaust.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c b/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c
index 468492c..bc34441 100644
--- a/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c
+++ b/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c
@@ -45,6 +45,9 @@ __RCSID("$NetBSD: t_exhaust.c,v 1.7 2011/11/16 18:37:31 christos Exp $");
#include <stdlib.h>
#include <err.h>
#include <atf-c.h>
+#if defined(__FreeBSD__)
+#include <sys/resource.h>
+#endif
#ifndef REGEX_MAXSIZE
#define REGEX_MAXSIZE 9999
@@ -176,14 +179,25 @@ ATF_TC_HEAD(regcomp_too_big, tc)
" crash, but return a proper error code");
// libtre needs it.
atf_tc_set_md_var(tc, "timeout", "600");
+#if defined(__FreeBSD__)
+ atf_tc_set_md_var(tc, "require.memory", "64M");
+#else
atf_tc_set_md_var(tc, "require.memory", "120M");
+#endif
}
ATF_TC_BODY(regcomp_too_big, tc)
{
regex_t re;
+#if defined(__FreeBSD__)
+ struct rlimit limit;
+#endif
int e;
+#if defined(__FreeBSD__)
+ limit.rlim_cur = limit.rlim_max = 64 * 1024 * 1024;
+ ATF_REQUIRE(setrlimit(RLIMIT_VMEM, &limit) != -1);
+#endif
for (size_t i = 0; i < __arraycount(tests); i++) {
char *d = (*tests[i].pattern)(REGEX_MAXSIZE);
e = regcomp(&re, d, tests[i].type);
OpenPOWER on IntegriCloud