This commit is contained in:
Mateusz Gruszczyński committed 2026-10-04 11:15:58 +02:00
1 parent 87e571c170
commit fa7abc9e53
308 files changed
+49746 -50237

No files matched your search

+1 -15
View File
@@ -67,18 +67,4 @@ pub(crate) fn augment(view: &mut View) {
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn proc_values_and_unavailable_are_distinct() {
assert_eq!(
key_value(
"VmRSS:\t123 kB\nRssAnon:\t100 kB\nRssFile:\t20 kB\nRssShmem:\t3 kB\nThreads:\t2\n",
"VmRSS"
),
Some(123)
);
assert_eq!(key_value("", "VmRSS"), None);
}
}
include!("linux/tests.rs");
+15
View File
@@ -0,0 +1,15 @@
mod tests {
use super::*;
#[test]
fn proc_values_and_unavailable_are_distinct() {
assert_eq!(
key_value(
"VmRSS:\t123 kB\nRssAnon:\t100 kB\nRssFile:\t20 kB\nRssShmem:\t3 kB\nThreads:\t2\n",
"VmRSS"
),
Some(123)
);
assert_eq!(key_value("", "VmRSS"), None);
}
}
+1 -91
View File
@@ -417,94 +417,4 @@ pub(crate) fn now_ms() -> u64 {
mod linux;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn platform_is_never_empty() {
assert!(!platform_name().is_empty());
}
#[test]
fn network_normalization_filters_loopback_and_keeps_all_real_interfaces() {
let raw = vec![
("lo".to_owned(), 1, 2),
("lo0".to_owned(), 3, 4),
("lo1".to_owned(), 5, 6),
("em0".to_owned(), 100, 200),
("eth0".to_owned(), 300, 400),
("em0".to_owned(), 90, 250),
];
let interfaces = normalize_network_interfaces(raw);
assert_eq!(interfaces.len(), 2);
assert_eq!(interfaces[0].name, "em0");
assert_eq!(interfaces[0].rx_bytes, 100);
assert_eq!(interfaces[0].tx_bytes, 250);
assert_eq!(interfaces[1].name, "eth0");
}
#[test]
fn network_merge_supplements_partial_primary_inventory() {
let primary = normalize_network_interfaces(vec![
("em0".to_owned(), 0, 20),
("wg0".to_owned(), 50, 60),
]);
let secondary = normalize_network_interfaces(vec![
("em0".to_owned(), 100, 10),
("em1".to_owned(), 200, 300),
]);
let interfaces = merge_network_interfaces(primary, secondary);
assert_eq!(interfaces.len(), 3);
assert_eq!(interfaces[0].name, "em0");
assert_eq!(interfaces[0].rx_bytes, 100);
assert_eq!(interfaces[0].tx_bytes, 20);
assert_eq!(interfaces[1].name, "em1");
assert_eq!(interfaces[2].name, "wg0");
}
#[test]
fn rate_calculation_tracks_each_interface() {
let mut current = View {
sampled_at_ms: 3_000,
network_rx_bytes: Some(400),
network_tx_bytes: Some(800),
network_interfaces: vec![NetworkInterfaceView {
name: "em0".to_owned(),
rx_bytes: 300,
tx_bytes: 600,
rx_bytes_per_second: None,
tx_bytes_per_second: None,
}],
..Default::default()
};
let previous = View {
sampled_at_ms: 1_000,
network_rx_bytes: Some(200),
network_tx_bytes: Some(400),
network_interfaces: vec![NetworkInterfaceView {
name: "em0".to_owned(),
rx_bytes: 100,
tx_bytes: 200,
rx_bytes_per_second: None,
tx_bytes_per_second: None,
}],
..Default::default()
};
calculate_rates(&mut current, &previous);
assert_eq!(current.network_rx_bytes_per_second, Some(100.0));
assert_eq!(current.network_tx_bytes_per_second, Some(200.0));
assert_eq!(current.network_interfaces[0].rx_bytes_per_second, Some(100.0));
assert_eq!(current.network_interfaces[0].tx_bytes_per_second, Some(200.0));
}
#[test]
fn sample_reports_platform_and_timestamp() {
let (view, _) = sample(None);
assert_eq!(view.platform, platform_name());
assert_eq!(view.source, source_name());
assert!(view.sampled_at_ms > 0);
if let Some(cpu) = view.cpu_percent {
assert!((0.0..=100.0).contains(&cpu));
}
}
}
include!("tests.rs");
+91
View File
@@ -0,0 +1,91 @@
mod tests {
use super::*;
#[test]
fn platform_is_never_empty() {
assert!(!platform_name().is_empty());
}
#[test]
fn network_normalization_filters_loopback_and_keeps_all_real_interfaces() {
let raw = vec![
("lo".to_owned(), 1, 2),
("lo0".to_owned(), 3, 4),
("lo1".to_owned(), 5, 6),
("em0".to_owned(), 100, 200),
("eth0".to_owned(), 300, 400),
("em0".to_owned(), 90, 250),
];
let interfaces = normalize_network_interfaces(raw);
assert_eq!(interfaces.len(), 2);
assert_eq!(interfaces[0].name, "em0");
assert_eq!(interfaces[0].rx_bytes, 100);
assert_eq!(interfaces[0].tx_bytes, 250);
assert_eq!(interfaces[1].name, "eth0");
}
#[test]
fn network_merge_supplements_partial_primary_inventory() {
let primary = normalize_network_interfaces(vec![
("em0".to_owned(), 0, 20),
("wg0".to_owned(), 50, 60),
]);
let secondary = normalize_network_interfaces(vec![
("em0".to_owned(), 100, 10),
("em1".to_owned(), 200, 300),
]);
let interfaces = merge_network_interfaces(primary, secondary);
assert_eq!(interfaces.len(), 3);
assert_eq!(interfaces[0].name, "em0");
assert_eq!(interfaces[0].rx_bytes, 100);
assert_eq!(interfaces[0].tx_bytes, 20);
assert_eq!(interfaces[1].name, "em1");
assert_eq!(interfaces[2].name, "wg0");
}
#[test]
fn rate_calculation_tracks_each_interface() {
let mut current = View {
sampled_at_ms: 3_000,
network_rx_bytes: Some(400),
network_tx_bytes: Some(800),
network_interfaces: vec![NetworkInterfaceView {
name: "em0".to_owned(),
rx_bytes: 300,
tx_bytes: 600,
rx_bytes_per_second: None,
tx_bytes_per_second: None,
}],
..Default::default()
};
let previous = View {
sampled_at_ms: 1_000,
network_rx_bytes: Some(200),
network_tx_bytes: Some(400),
network_interfaces: vec![NetworkInterfaceView {
name: "em0".to_owned(),
rx_bytes: 100,
tx_bytes: 200,
rx_bytes_per_second: None,
tx_bytes_per_second: None,
}],
..Default::default()
};
calculate_rates(&mut current, &previous);
assert_eq!(current.network_rx_bytes_per_second, Some(100.0));
assert_eq!(current.network_tx_bytes_per_second, Some(200.0));
assert_eq!(current.network_interfaces[0].rx_bytes_per_second, Some(100.0));
assert_eq!(current.network_interfaces[0].tx_bytes_per_second, Some(200.0));
}
#[test]
fn sample_reports_platform_and_timestamp() {
let (view, _) = sample(None);
assert_eq!(view.platform, platform_name());
assert_eq!(view.source, source_name());
assert!(view.sampled_at_ms > 0);
if let Some(cpu) = view.cpu_percent {
assert!((0.0..=100.0).contains(&cpu));
}
}
}