From c600ca109d74c38f130b84353b6f21ff2439a36d Mon Sep 17 00:00:00 2001 From: chenjiayi Date: Wed, 15 Nov 2023 15:35:26 +0800 Subject: [PATCH 062/103] test(device): add UT for device monitor --- libs/device/src/device_monitor.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/libs/device/src/device_monitor.rs b/libs/device/src/device_monitor.rs index 3f1d1ba6..c6ad3ec6 100644 --- a/libs/device/src/device_monitor.rs +++ b/libs/device/src/device_monitor.rs @@ -216,7 +216,7 @@ impl Drop for DeviceMonitor { #[cfg(test)] mod tests { use super::*; - use crate::device::*; + use crate::{device::*, DeviceAction}; use event::*; use std::{os::unix::prelude::RawFd, rc::Rc, thread::spawn}; @@ -264,9 +264,13 @@ mod tests { } /// test whether device monitor can receive uevent from kernel normally - #[ignore] #[test] fn test_monitor_kernel() { + let device = Device::from_subsystem_sysname("net", "lo").unwrap(); + if device.trigger(DeviceAction::Change).is_err() { + return; + } + let e = Events::new().unwrap(); let s: Rc = Rc::new(Monitor { device_monitor: DeviceMonitor::new(MonitorNetlinkGroup::Kernel, None), @@ -275,7 +279,7 @@ mod tests { e.set_enabled(s.clone(), EventState::On).unwrap(); spawn(|| { - let device = Device::from_devname("/dev/sda").unwrap(); + let device = Device::from_subsystem_sysname("net", "lo").unwrap(); device.set_sysattr_value("uevent", Some("change")).unwrap(); }) .join() @@ -287,9 +291,13 @@ mod tests { } /// test whether device monitor can receive device message from userspace normally - #[ignore] #[test] fn test_monitor_userspace() { + let device = Device::from_subsystem_sysname("net", "lo").unwrap(); + if device.trigger(DeviceAction::Change).is_err() { + return; + } + let e = Events::new().unwrap(); let s: Rc = Rc::new(Monitor { device_monitor: DeviceMonitor::new(MonitorNetlinkGroup::Userspace, None), @@ -298,9 +306,8 @@ mod tests { e.set_enabled(s.clone(), EventState::On).unwrap(); spawn(|| { - let device = Device::from_devname("/dev/sda").unwrap(); + let device = Device::from_subsystem_sysname("net", "lo").unwrap(); device.set_action_from_string("change").unwrap(); - device.set_subsystem("block"); device.set_seqnum(1000); let broadcaster = DeviceMonitor::new(MonitorNetlinkGroup::None, None); -- 2.33.0