1#include <string.h>
2#include <errno.h>
3#include <sys/resource.h>
4#include "test.h"
5
6int 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