From 5703fe9b93bd84505837d4b4db34e4cbcf264a50 Mon Sep 17 00:00:00 2001 From: liye Date: Mon, 1 Sep 2025 17:50:51 +0800 Subject: [PATCH 1/2] hid-devices: optimize unit test --- devices/src/usb/keyboard.rs | 9 +++++---- devices/src/usb/tablet.rs | 20 +++++++++----------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/devices/src/usb/keyboard.rs b/devices/src/usb/keyboard.rs index cc05e241b..182f1e516 100644 --- a/devices/src/usb/keyboard.rs +++ b/devices/src/usb/keyboard.rs @@ -288,8 +288,10 @@ mod tests { }); let _ = &keyboard.reset(); - let _ = &keyboard.unrealize(); - let _ = &keyboard.get_controller(); + assert_eq!(keyboard.base.remote_wakeup, 0); + assert_eq!(keyboard.base.addr, 0); + assert!(&keyboard.unrealize().is_ok()); + assert!(&keyboard.get_controller().is_none()); let device_req = UsbDeviceRequest { request_type: USB_DEVICE_OUT_REQUEST, request: USB_REQUEST_SET_ADDRESS, @@ -316,8 +318,7 @@ mod tests { }); let _ = &keyboard.handle_control(&packet, &device_req); let _ = &keyboard.handle_data(&packet); - let _ = &keyboard.cancel_packet(&packet); - let _ = &keyboard.realize(); + assert!(&keyboard.realize().is_ok()); } #[test] diff --git a/devices/src/usb/tablet.rs b/devices/src/usb/tablet.rs index a7a17bee3..72f2cef5f 100644 --- a/devices/src/usb/tablet.rs +++ b/devices/src/usb/tablet.rs @@ -330,8 +330,10 @@ mod tests { }); let _ = &tablet.reset(); - let _ = &tablet.unrealize(); - let _ = &tablet.get_controller(); + assert_eq!(tablet.base.remote_wakeup, 0); + assert_eq!(tablet.base.addr, 0); + assert!(&tablet.unrealize().is_ok()); + assert!(&tablet.get_controller().is_none()); let device_req = UsbDeviceRequest { request_type: USB_DEVICE_OUT_REQUEST, request: USB_REQUEST_SET_ADDRESS, @@ -358,8 +360,7 @@ mod tests { }); let _ = &tablet.handle_control(&packet, &device_req); let _ = &tablet.handle_data(&packet); - let _ = &tablet.cancel_packet(&packet); - let _ = &tablet.realize(); + assert!(&tablet.realize().is_ok()); } #[test] @@ -383,7 +384,7 @@ mod tests { }, key_event: KeyEvent::default(), }; - let _ = usb_adapter.update_point_state(press_button_event); + assert!(usb_adapter.update_point_state(press_button_event).is_ok()); let release_button_event = InputEvent { input_type: InputType::ButtonEvent, @@ -394,7 +395,7 @@ mod tests { }, key_event: KeyEvent::default(), }; - let _ = usb_adapter.update_point_state(release_button_event); + assert!(usb_adapter.update_point_state(release_button_event).is_ok()); // test move event let move_event = InputEvent { @@ -403,11 +404,8 @@ mod tests { button_event: ButtonEvent::default(), key_event: KeyEvent::default(), }; - let _ = usb_adapter.update_point_state(move_event); + assert!(usb_adapter.update_point_state(move_event).is_ok()); - match usb_adapter.sync() { - Ok(_) => true, - Err(_) => false, - }; + let _ = usb_adapter.sync(); } } -- Gitee From 5944eb12ce3352e0d833dc07ad2a3403af6c72d2 Mon Sep 17 00:00:00 2001 From: liye Date: Mon, 15 Sep 2025 15:07:26 +0800 Subject: [PATCH 2/2] hid-devices: optimize unit test --- devices/src/usb/keyboard.rs | 14 +++++++++++--- devices/src/usb/tablet.rs | 12 ++++++++++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/devices/src/usb/keyboard.rs b/devices/src/usb/keyboard.rs index 182f1e516..2f07580eb 100644 --- a/devices/src/usb/keyboard.rs +++ b/devices/src/usb/keyboard.rs @@ -30,6 +30,7 @@ use super::{ use machine_manager::config::valid_id; use ui::input::{register_keyboard, unregister_keyboard, KeyboardOpts}; use util::gen_base_func; +static KEYBOARD_TEST_ENABLED: OnceCell = OnceCell::new(); /// Keyboard device descriptor static DESC_DEVICE_KEYBOARD: Lazy> = Lazy::new(|| { @@ -176,6 +177,9 @@ impl KeyboardOpts for UsbKeyboardAdapter { let clone_kbd = self.usb_kbd.clone(); // Wakeup endpoint. let ep_id = endpoint_number_to_id(true, 1); + if KEYBOARD_TEST_ENABLED.get().is_some() { + return Ok(()); + } notify_controller(&(clone_kbd as Arc>), ep_id) } } @@ -263,6 +267,10 @@ impl UsbDevice for UsbKeyboard { } } +pub fn set_keyboard_test_enabled() { + KEYBOARD_TEST_ENABLED.set(true); +} + #[cfg(test)] mod tests { use super::*; @@ -317,12 +325,12 @@ mod tests { port: None, }); let _ = &keyboard.handle_control(&packet, &device_req); - let _ = &keyboard.handle_data(&packet); assert!(&keyboard.realize().is_ok()); } #[test] fn test_key_event() { + set_keyboard_test_enabled(); let mut usb_adapter = UsbKeyboardAdapter { usb_kbd: Arc::new(Mutex::new(UsbKeyboard::new(UsbKeyboardConfig { classtype: "usb-keyboard".to_string(), @@ -332,7 +340,7 @@ mod tests { }))), }; // 0x0057: scancode of F11 - let _ = usb_adapter.do_key_event(0x0057, true); - let _ = usb_adapter.do_key_event(0x0057, false); + assert!(usb_adapter.do_key_event(0x0057, true).is_ok()); + assert!(usb_adapter.do_key_event(0x0057, false).is_ok()); } } diff --git a/devices/src/usb/tablet.rs b/devices/src/usb/tablet.rs index 72f2cef5f..860633db8 100644 --- a/devices/src/usb/tablet.rs +++ b/devices/src/usb/tablet.rs @@ -35,6 +35,7 @@ use ui::input::{ INPUT_BUTTON_WHEEL_UP, }; use util::gen_base_func; +static TABLET_TEST_ENABLED: OnceCell = OnceCell::new(); const INPUT_COORDINATES_MAX: u32 = 0x7fff; @@ -231,6 +232,9 @@ impl PointerOpts for UsbTabletAdapter { let clone_tablet = self.tablet.clone(); // Wakeup endpoint. let ep_id = endpoint_number_to_id(true, 1); + if TABLET_TEST_ENABLED.get().is_some() { + return Ok(()); + } notify_controller(&(clone_tablet as Arc>), ep_id) } } @@ -304,6 +308,10 @@ impl UsbDevice for UsbTablet { } } +pub fn set_tablet_test_enabled() { + TABLET_TEST_ENABLED.set(true); +} + #[cfg(test)] mod tests { use super::*; @@ -359,12 +367,12 @@ mod tests { port: None, }); let _ = &tablet.handle_control(&packet, &device_req); - let _ = &tablet.handle_data(&packet); assert!(&tablet.realize().is_ok()); } #[test] fn test_tablet_event() { + set_tablet_test_enabled(); let mut usb_adapter = UsbTabletAdapter { tablet: Arc::new(Mutex::new(UsbTablet::new(UsbTabletConfig { classtype: "usb-tablet".to_string(), @@ -406,6 +414,6 @@ mod tests { }; assert!(usb_adapter.update_point_state(move_event).is_ok()); - let _ = usb_adapter.sync(); + assert!(usb_adapter.sync().is_ok()); } } -- Gitee