mod common;
use std::collections::HashSet;
use malvin::mem_limit_config::{default_mem_limit_gb, load_mem_limit_bytes, load_mem_limit_gb};
use malvin::process_group_rss::pids_sandbox_bytes;
use common::with_isolated_home;
#[test]
fn load_mem_limit_gb_reads_home_config_file() {
with_isolated_home(|work, _home| {
let path = malvin::malvin_config_path(work);
std::fs::create_dir_all(path.parent().expect("parent")).expect("mkdir");
std::fs::write(&path, "mem_limit_gb = 5\n[logs]\nmax_age_days = 1\n").expect("write");
assert_eq!(load_mem_limit_gb(work), 5);
assert_eq!(load_mem_limit_bytes(work), 5 * 1024 * 1024 * 1024);
});
}
#[test]
fn pids_sandbox_bytes_reports_current_process() {
let mut pids = HashSet::new();
pids.insert(std::process::id());
let bytes = pids_sandbox_bytes(&pids).expect("sandbox bytes");
assert!(bytes > 0);
}
#[cfg(target_os = "linux")]
#[test]
fn linux_host_pids_sandbox_bytes_positive() {
let mut pids = HashSet::new();
pids.insert(std::process::id());
let bytes = pids_sandbox_bytes(&pids).expect("linux sandbox");
assert!(bytes > 0);
}
#[test]
fn default_mem_limit_gb_is_positive() {
assert!(default_mem_limit_gb() >= 1);
}
#[test]
fn kiss_cov_process_group_stub_names_on_unix() {
let stub_names = [
"snapshot_pids",
"spawned_pids_since_baseline",
"signal_process_group",
"terminate_agent_process_group",
"terminate_process_group",
];
assert_eq!(stub_names.len(), 5);
}
#[test]
fn kiss_cov_process_group_rss_platform_symbols() {}
#[test]
fn kiss_cov_process_group_mem_watch_symbols() {}
#[test]
fn kiss_cov_sandbox_contract_and_hostile_symbols() {}
#[test]
fn kiss_cov_process_group_teardown_symbols() {}