use sysinfo::System;
use crate::metrics::{
memory::{refresh, MemState},
HISTORY_LEN,
};
#[test]
fn test_mem_state_new_has_nonzero_total() {
let mut sys = System::new_all();
sys.refresh_all();
let state = MemState::new(&sys);
assert!(state.total > 0, "total RAM must be > 0");
}
#[test]
fn test_mem_state_new_used_lte_total() {
let mut sys = System::new_all();
sys.refresh_all();
let state = MemState::new(&sys);
assert!(
state.used <= state.total,
"used ({}) > total ({})",
state.used,
state.total
);
}
#[test]
fn test_mem_state_new_history_length() {
let mut sys = System::new_all();
sys.refresh_all();
let state = MemState::new(&sys);
assert_eq!(state.history.len(), HISTORY_LEN);
assert!(state.history.iter().all(|&v| v == 0.0));
}
#[test]
fn test_mem_refresh_does_not_panic_and_caps_history() {
let mut sys = System::new_all();
sys.refresh_all();
let mut state = MemState::new(&sys);
refresh(&mut state, &sys);
assert_eq!(state.history.len(), HISTORY_LEN);
}
#[test]
fn test_mem_refresh_used_lte_total() {
let mut sys = System::new_all();
sys.refresh_all();
let mut state = MemState::new(&sys);
refresh(&mut state, &sys);
assert!(
state.used <= state.total,
"used ({}) > total ({}) after refresh",
state.used,
state.total
);
}