Skip to content

Commit fbc7350

Browse files
Hui Zhualexandruag
authored andcommitted
mmap.rs: Test the last address with GuestMemory
Met an issue that uses checked_offset with len to check if an address and len is valid in cloud-hypervisor. It will fail when len is the max size of the range. This commit adds test code for the last address to test_checked_offset and test_check_range to test and shows how to handle the last address clearly. Signed-off-by: Hui Zhu <[email protected]>
1 parent ca43226 commit fbc7350

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/mmap.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1443,6 +1443,12 @@ mod tests {
14431443
);
14441444
assert_eq!(guest_mem.checked_offset(start_addr2, 0xc00), None);
14451445
assert_eq!(guest_mem.checked_offset(start_addr1, std::usize::MAX), None);
1446+
1447+
assert_eq!(guest_mem.checked_offset(start_addr1, 0x400), None);
1448+
assert_eq!(
1449+
guest_mem.checked_offset(start_addr1, 0x400 - 1),
1450+
Some(GuestAddress(0x400 - 1))
1451+
);
14461452
}
14471453

14481454
#[test]
@@ -1459,6 +1465,7 @@ mod tests {
14591465

14601466
assert_eq!(guest_mem.check_range(start_addr1, 0x0), true);
14611467
assert_eq!(guest_mem.check_range(start_addr1, 0x200), true);
1468+
assert_eq!(guest_mem.check_range(start_addr1, 0x400), true);
14621469
assert_eq!(guest_mem.check_range(start_addr1, 0xa00), false);
14631470
assert_eq!(guest_mem.check_range(start_addr2, 0x7ff), true);
14641471
assert_eq!(guest_mem.check_range(start_addr2, 0x800), true);

0 commit comments

Comments
 (0)