Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Oct 2014 21:53:13 +0000 (UTC)
From:      Garrett Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r273010 - head/contrib/netbsd-tests/lib/libc/regex
Message-ID:  <201410122153.s9CLrDp5001297@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Sun Oct 12 21:53:13 2014
New Revision: 273010
URL: https://svnweb.freebsd.org/changeset/base/273010

Log:
  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

Modified:
  head/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c

Modified: head/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c
==============================================================================
--- head/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c	Sun Oct 12 19:12:48 2014	(r273009)
+++ head/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c	Sun Oct 12 21:53:13 2014	(r273010)
@@ -45,6 +45,9 @@ __RCSID("$NetBSD: t_exhaust.c,v 1.7 2011
 #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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410122153.s9CLrDp5001297>