1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
use rustix::process::{Resource, Rlimit};
#[test]
fn test_getrlimit() {
let lim = rustix::process::getrlimit(Resource::Stack);
assert_ne!(lim.current, Some(0));
assert_ne!(lim.maximum, Some(0));
}
#[test]
fn test_setrlimit() {
let old = rustix::process::getrlimit(Resource::Core);
let new = Rlimit {
current: Some(0),
maximum: Some(4096),
};
assert_ne!(old, new);
rustix::process::setrlimit(Resource::Core, new.clone()).unwrap();
let lim = rustix::process::getrlimit(Resource::Core);
assert_eq!(lim, new);
#[cfg(any(target_os = "android", target_os = "linux"))]
{
let new = Rlimit {
current: Some(0),
maximum: Some(0),
};
let first = rustix::process::getrlimit(Resource::Core);
let old = match rustix::process::prlimit(None, Resource::Core, new.clone()) {
Ok(rlimit) => rlimit,
Err(rustix::io::Errno::NOSYS) => return,
Err(e) => Err(e).unwrap(),
};
assert_eq!(first, old);
let other = Rlimit {
current: Some(0),
maximum: Some(0),
};
let again =
rustix::process::prlimit(Some(rustix::process::getpid()), Resource::Core, other)
.unwrap();
assert_eq!(again, new);
}
}
|