From 356f15308599783ab78979f5709c6478a5bebc71 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Fri, 15 May 2026 01:17:04 +0200 Subject: [PATCH] vm-virtio: checked_descriptor: Add unit test for next_checked Err Cover the rejection path of the trait method next_checked, asserting that an out of range descriptor is reported as Err(addr) carrying the original descriptor address. Signed-off-by: Anatol Belski --- vm-virtio/src/checked_descriptor.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/vm-virtio/src/checked_descriptor.rs b/vm-virtio/src/checked_descriptor.rs index e0c4d7733..63af4866b 100644 --- a/vm-virtio/src/checked_descriptor.rs +++ b/vm-virtio/src/checked_descriptor.rs @@ -325,4 +325,15 @@ mod unit_tests { let res = chain.next_checked(None); assert!(matches!(res, Ok(None))); } + + #[test] + fn next_checked_returns_err_on_invalid_descriptor() { + let (_mem, mem_atomic, mut queue) = setup_vq(128 * 1024, 0x4000, 1 << 30, 0); + let mem_guard = mem_atomic.memory(); + let mut chain = queue.pop_descriptor_chain(mem_guard).unwrap(); + let err = chain + .next_checked(None) + .expect_err("validation must reject the descriptor"); + assert_eq!(err.0, 0x4000); + } }