in src/data/interrupts.rs [367:403]
fn test_get_data_interrupt_line_values() {
let mut buffer: Vec<Data> = Vec::<Data>::new();
let mut id_raw = InterruptDataRaw::new();
let mut processed_buffer: Vec<ProcessedData> = Vec::<ProcessedData>::new();
let params = CollectorParams::new();
id_raw.collect_data(¶ms).unwrap();
buffer.push(Data::InterruptDataRaw(id_raw));
for buf in buffer {
processed_buffer.push(InterruptData::new().process_raw_data(buf).unwrap());
}
let id = match &processed_buffer[0] {
ProcessedData::InterruptData(value) => value.clone(),
_ => unreachable!(),
};
for interrupt_line_data in &id.interrupt_data {
match &interrupt_line_data.interrupt_line {
InterruptLine::InterruptNr(_) => {
assert!(!interrupt_line_data.interrupt_type.is_empty());
assert!(!interrupt_line_data.interrupt_device.is_empty());
assert!(!interrupt_line_data.per_cpu.is_empty());
}
InterruptLine::InterruptStr(value) => {
if value.to_uppercase() == "MIS" || value.to_uppercase() == "ERR" {
assert_eq!(interrupt_line_data.interrupt_type, *value);
assert_eq!(interrupt_line_data.per_cpu.len(), 1);
} else {
assert!(!interrupt_line_data.interrupt_type.is_empty());
assert!(!interrupt_line_data.per_cpu.is_empty());
}
assert!(interrupt_line_data.interrupt_device.is_empty());
}
InterruptLine::None => unreachable!(),
}
}
}