fn test_get_data_interrupt_line_values()

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(&params).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!(),
            }
        }
    }