1 #include <string.h>
2 #include <errno.h>
3 #include <sys/resource.h>
4 #include "test.h"
5
t_setrlim(int r,long lim)6 int t_setrlim(int r, long lim)
7 {
8 struct rlimit rl;
9
10 if (getrlimit(r, &rl)) {
11 t_error("getrlimit %d: %s\n", r, strerror(errno));
12 return -1;
13 }
14 if (lim > rl.rlim_max)
15 return -1;
16 if (lim == rl.rlim_max && lim == rl.rlim_cur)
17 return 0;
18 rl.rlim_max = lim;
19 rl.rlim_cur = lim;
20 if (setrlimit(r, &rl)) {
21 t_error("setrlimit(%d, %ld): %s\n", r, lim, strerror(errno));
22 return -1;
23 }
24 return 0;
25 }
26
27