#include <string.h>
#include <errno.h>
#include <sys/resource.h>
#include "test.h"
int t_setrlim(int r, long lim)
{
struct rlimit rl;
if (getrlimit(r, &rl)) {
t_error("getrlimit %d: %s\n", r, strerror(errno));
return -1;
}
if (lim > rl.rlim_max)
return -1;
if (lim == rl.rlim_max && lim == rl.rlim_cur)
return 0;
rl.rlim_max = lim;
rl.rlim_cur = lim;
if (setrlimit(r, &rl)) {
t_error("setrlimit(%d, %ld): %s\n", r, lim, strerror(errno));
return -1;
}
return 0;
}