Module Name:    src
Committed By:   njoly
Date:           Fri Sep 30 21:08:19 UTC 2011

Modified Files:
        src/tests/lib/libc/sys: t_dup.c

Log Message:
Do not try to open files up to the RLIMIT_NOFILE limit, which fails
when process limit is identical to the whole system limit. Just do it
for a small fixed value, and adjust the limit accordingly instead.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/tests/lib/libc/sys/t_dup.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_dup.c
diff -u src/tests/lib/libc/sys/t_dup.c:1.5 src/tests/lib/libc/sys/t_dup.c:1.6
--- src/tests/lib/libc/sys/t_dup.c:1.5	Mon Jul 18 04:29:37 2011
+++ src/tests/lib/libc/sys/t_dup.c	Fri Sep 30 21:08:19 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: t_dup.c,v 1.5 2011/07/18 04:29:37 jruoho Exp $ */
+/* $NetBSD: t_dup.c,v 1.6 2011/09/30 21:08:19 njoly Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -29,13 +29,14 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: t_dup.c,v 1.5 2011/07/18 04:29:37 jruoho Exp $");
+__RCSID("$NetBSD: t_dup.c,v 1.6 2011/09/30 21:08:19 njoly Exp $");
 
 #include <sys/resource.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
 
 #include <atf-c.h>
+#include <err.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <limits.h>
@@ -300,13 +301,11 @@ ATF_TC_BODY(dup_max, tc)
 		(void)closefrom(0);
 		(void)memset(&res, 0, sizeof(struct rlimit));
 
-		if (getrlimit(RLIMIT_NOFILE, &res) != 0)
+		n = 10;
+		res.rlim_cur = res.rlim_max = n;
+		if (setrlimit(RLIMIT_NOFILE, &res) != 0)
 			_exit(EX_OSERR);
 
-		if (res.rlim_cur == 0 || res.rlim_max == 0)
-			_exit(EX_OSERR);
-
-		n = res.rlim_cur;
 		buf = calloc(n, sizeof(int));
 
 		if (buf == NULL)

Reply via email to