summaryrefslogtreecommitdiffstats
path: root/vendor/rustix/tests/process/rlimit.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/tests/process/rlimit.rs')
-rw-r--r--vendor/rustix/tests/process/rlimit.rs51
1 files changed, 51 insertions, 0 deletions
diff --git a/vendor/rustix/tests/process/rlimit.rs b/vendor/rustix/tests/process/rlimit.rs
new file mode 100644
index 000000000..b01f9204c
--- /dev/null
+++ b/vendor/rustix/tests/process/rlimit.rs
@@ -0,0 +1,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);
+ }
+}