Skip to content

Commit 1d0ea88

Browse files
roypatShadowCurse
authored andcommitted
refactor(test): use assert_matches! in tests
Use assert_matches!() from our matches dev-dependency instead of assert!(matches!()), to improve the failure messages of tests. Signed-off-by: Patrick Roy <[email protected]>
1 parent cec2d71 commit 1d0ea88

File tree

5 files changed

+37
-36
lines changed

5 files changed

+37
-36
lines changed

src/bytes.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,15 +246,16 @@ pub trait Bytes<A> {
246246
///
247247
/// ```rust
248248
/// # use vm_memory::{Bytes, VolatileMemoryError, VolatileSlice};
249+
/// # use matches::assert_matches;
249250
/// let mut arr = [1, 2, 3, 4, 5];
250251
/// let slice = VolatileSlice::from(arr.as_mut_slice());
251252
///
252253
/// assert_eq!(slice.write(&[1, 2, 3], 0).unwrap(), 3);
253254
/// assert_eq!(slice.write(&[1, 2, 3], 3).unwrap(), 2);
254-
/// assert!(matches!(
255+
/// assert_matches!(
255256
/// slice.write(&[1, 2, 3], 5).unwrap_err(),
256257
/// VolatileMemoryError::OutOfBounds { addr: 5 }
257-
/// ));
258+
/// );
258259
/// assert_eq!(slice.write(&[], 5).unwrap(), 0);
259260
/// ```
260261
fn write(&self, buf: &[u8], addr: A) -> Result<usize, Self::E>;

src/mmap/mod.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@ mod tests {
230230
use std::{fs::File, path::Path};
231231
use vmm_sys_util::tempfile::TempFile;
232232

233+
use matches::assert_matches;
234+
233235
type GuestRegionMmap = super::GuestRegionMmap<()>;
234236
type GuestMemoryMmap = super::GuestRegionCollection<GuestRegionMmap>;
235237
type MmapRegion = super::MmapRegion<()>;
@@ -379,13 +381,13 @@ mod tests {
379381
for gm in gm_list.iter() {
380382
let val1: u64 = 0xaa55_aa55_aa55_aa55;
381383
let val2: u64 = 0x55aa_55aa_55aa_55aa;
382-
assert!(matches!(
384+
assert_matches!(
383385
gm.write_obj(val1, bad_addr).unwrap_err(),
384386
GuestMemoryError::InvalidGuestAddress(addr) if addr == bad_addr
385-
));
386-
assert!(matches!(
387+
);
388+
assert_matches!(
387389
gm.write_obj(val1, bad_addr2).unwrap_err(),
388-
GuestMemoryError::PartialBuffer { expected, completed} if expected == size_of::<u64>() && completed == max_addr.checked_offset_from(bad_addr2).unwrap() as usize));
390+
GuestMemoryError::PartialBuffer { expected, completed } if expected == size_of::<u64>() && completed == max_addr.checked_offset_from(bad_addr2).unwrap() as usize);
389391

390392
gm.write_obj(val1, GuestAddress(0x500)).unwrap();
391393
gm.write_obj(val2, GuestAddress(0x1000 + 32)).unwrap();

src/mmap/unix.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,8 @@ mod tests {
445445
#[cfg(feature = "backend-bitmap")]
446446
use crate::bitmap::AtomicBitmap;
447447

448+
use matches::assert_matches;
449+
448450
type MmapRegion = super::MmapRegion<()>;
449451

450452
impl Error {
@@ -551,9 +553,7 @@ mod tests {
551553
prot,
552554
flags,
553555
);
554-
assert!(
555-
matches!(r.unwrap_err(), Error::Mmap(err) if err.raw_os_error() == Some(libc::EINVAL))
556-
);
556+
assert_matches!(r.unwrap_err(), Error::Mmap(err) if err.raw_os_error() == Some(libc::EINVAL));
557557

558558
// MAP_FIXED was specified among the flags.
559559
let r = MmapRegion::build(
@@ -562,7 +562,7 @@ mod tests {
562562
prot,
563563
flags | libc::MAP_FIXED,
564564
);
565-
assert!(matches!(r.unwrap_err(), Error::MapFixed));
565+
assert_matches!(r.unwrap_err(), Error::MapFixed);
566566

567567
// Let's resize the file.
568568
assert_eq!(unsafe { libc::ftruncate(a.as_raw_fd(), 1024 * 10) }, 0);
@@ -607,7 +607,7 @@ mod tests {
607607
let flags = libc::MAP_NORESERVE | libc::MAP_PRIVATE;
608608

609609
let r = unsafe { MmapRegion::build_raw((addr + 1) as *mut u8, size, prot, flags) };
610-
assert!(matches!(r.unwrap_err(), Error::InvalidPointer));
610+
assert_matches!(r.unwrap_err(), Error::InvalidPointer);
611611

612612
let r = unsafe { MmapRegion::build_raw(addr as *mut u8, size, prot, flags).unwrap() };
613613

src/mmap/xen.rs

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,6 +1020,7 @@ mod tests {
10201020
#![allow(clippy::undocumented_unsafe_blocks)]
10211021

10221022
use super::*;
1023+
use matches::assert_matches;
10231024
use vmm_sys_util::tempfile::TempFile;
10241025

10251026
// Adding a helper method to extract the errno within an Error::Mmap(e), or return a
@@ -1069,19 +1070,15 @@ mod tests {
10691070
range.mmap_flags = 16;
10701071

10711072
let r = MmapXen::new(&range);
1072-
assert!(matches!(r.unwrap_err(), Error::MmapFlags(flags) if flags == range.mmap_flags));
1073+
assert_matches!(r.unwrap_err(), Error::MmapFlags(flags) if flags == range.mmap_flags);
10731074

10741075
range.mmap_flags = MmapXenFlags::FOREIGN.bits() | MmapXenFlags::GRANT.bits();
10751076
let r = MmapXen::new(&range);
1076-
assert!(
1077-
matches!(r.unwrap_err(), Error::MmapFlags(flags) if flags == MmapXenFlags::ALL.bits())
1078-
);
1077+
assert_matches!(r.unwrap_err(), Error::MmapFlags(flags) if flags == MmapXenFlags::ALL.bits());
10791078

10801079
range.mmap_flags = MmapXenFlags::FOREIGN.bits() | MmapXenFlags::NO_ADVANCE_MAP.bits();
10811080
let r = MmapXen::new(&range);
1082-
assert!(
1083-
matches!(r.unwrap_err(), Error::MmapFlags(flags) if flags == MmapXenFlags::NO_ADVANCE_MAP.bits() | MmapXenFlags::FOREIGN.bits())
1084-
);
1081+
assert_matches!(r.unwrap_err(), Error::MmapFlags(flags) if flags == MmapXenFlags::NO_ADVANCE_MAP.bits() | MmapXenFlags::FOREIGN.bits());
10851082
}
10861083

10871084
#[test]
@@ -1116,17 +1113,17 @@ mod tests {
11161113
range.file_offset = Some(FileOffset::new(TempFile::new().unwrap().into_file(), 0));
11171114
range.prot = None;
11181115
let r = MmapXenForeign::new(&range);
1119-
assert!(matches!(r.unwrap_err(), Error::UnexpectedError));
1116+
assert_matches!(r.unwrap_err(), Error::UnexpectedError);
11201117

11211118
let mut range = MmapRange::initialized(true);
11221119
range.flags = None;
11231120
let r = MmapXenForeign::new(&range);
1124-
assert!(matches!(r.unwrap_err(), Error::UnexpectedError));
1121+
assert_matches!(r.unwrap_err(), Error::UnexpectedError);
11251122

11261123
let mut range = MmapRange::initialized(true);
11271124
range.file_offset = Some(FileOffset::new(TempFile::new().unwrap().into_file(), 1));
11281125
let r = MmapXenForeign::new(&range);
1129-
assert!(matches!(r.unwrap_err(), Error::InvalidOffsetLength));
1126+
assert_matches!(r.unwrap_err(), Error::InvalidOffsetLength);
11301127

11311128
let mut range = MmapRange::initialized(true);
11321129
range.size = 0;
@@ -1148,7 +1145,7 @@ mod tests {
11481145
let mut range = MmapRange::initialized(true);
11491146
range.prot = None;
11501147
let r = MmapXenGrant::new(&range, MmapXenFlags::empty());
1151-
assert!(matches!(r.unwrap_err(), Error::UnexpectedError));
1148+
assert_matches!(r.unwrap_err(), Error::UnexpectedError);
11521149

11531150
let mut range = MmapRange::initialized(true);
11541151
range.prot = None;
@@ -1158,12 +1155,12 @@ mod tests {
11581155
let mut range = MmapRange::initialized(true);
11591156
range.flags = None;
11601157
let r = MmapXenGrant::new(&range, MmapXenFlags::NO_ADVANCE_MAP);
1161-
assert!(matches!(r.unwrap_err(), Error::UnexpectedError));
1158+
assert_matches!(r.unwrap_err(), Error::UnexpectedError);
11621159

11631160
let mut range = MmapRange::initialized(true);
11641161
range.file_offset = Some(FileOffset::new(TempFile::new().unwrap().into_file(), 1));
11651162
let r = MmapXenGrant::new(&range, MmapXenFlags::NO_ADVANCE_MAP);
1166-
assert!(matches!(r.unwrap_err(), Error::InvalidOffsetLength));
1163+
assert_matches!(r.unwrap_err(), Error::InvalidOffsetLength);
11671164

11681165
let mut range = MmapRange::initialized(true);
11691166
range.size = 0;

src/region.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,7 @@ pub(crate) mod tests {
478478
use crate::{
479479
Address, GuestAddress, GuestMemory, GuestMemoryRegion, GuestRegionCollection, GuestUsize,
480480
};
481+
use matches::assert_matches;
481482
use std::sync::Arc;
482483

483484
#[derive(Debug, PartialEq, Eq)]
@@ -556,42 +557,42 @@ pub(crate) mod tests {
556557
fn test_no_memory_region() {
557558
let regions_summary = [];
558559

559-
assert!(matches!(
560+
assert_matches!(
560561
new_guest_memory_collection_from_regions(&regions_summary).unwrap_err(),
561562
GuestRegionCollectionError::NoMemoryRegion
562-
));
563-
assert!(matches!(
563+
);
564+
assert_matches!(
564565
new_guest_memory_collection_from_arc_regions(&regions_summary).unwrap_err(),
565566
GuestRegionCollectionError::NoMemoryRegion
566-
));
567+
);
567568
}
568569

569570
#[test]
570571
fn test_overlapping_memory_regions() {
571572
let regions_summary = [(GuestAddress(0), 100), (GuestAddress(99), 100)];
572573

573-
assert!(matches!(
574+
assert_matches!(
574575
new_guest_memory_collection_from_regions(&regions_summary).unwrap_err(),
575576
GuestRegionCollectionError::MemoryRegionOverlap
576-
));
577-
assert!(matches!(
577+
);
578+
assert_matches!(
578579
new_guest_memory_collection_from_arc_regions(&regions_summary).unwrap_err(),
579580
GuestRegionCollectionError::MemoryRegionOverlap
580-
));
581+
);
581582
}
582583

583584
#[test]
584585
fn test_unsorted_memory_regions() {
585586
let regions_summary = [(GuestAddress(100), 100), (GuestAddress(0), 100)];
586587

587-
assert!(matches!(
588+
assert_matches!(
588589
new_guest_memory_collection_from_regions(&regions_summary).unwrap_err(),
589590
GuestRegionCollectionError::UnsortedMemoryRegions
590-
));
591-
assert!(matches!(
591+
);
592+
assert_matches!(
592593
new_guest_memory_collection_from_arc_regions(&regions_summary).unwrap_err(),
593594
GuestRegionCollectionError::UnsortedMemoryRegions
594-
));
595+
);
595596
}
596597

597598
#[test]

0 commit comments

Comments
 (0)