Nothing to see here, move along meow
0

Configure Feed

Select the types of activity you want to include in your feed.

at main 1.9 kB View raw
1use lancer_core::pci::*; 2use zerocopy::{FromBytes, IntoBytes}; 3 4#[test] 5fn bar_info_wire_size_24() { 6 assert_eq!(core::mem::size_of::<BarInfoWire>(), 24); 7} 8 9#[test] 10fn blocked_range_wire_size_4() { 11 assert_eq!(core::mem::size_of::<BlockedRangeWire>(), 4); 12} 13 14#[test] 15fn pci_device_info_wire_size_176() { 16 assert_eq!(core::mem::size_of::<PciDeviceInfoWire>(), 176); 17} 18 19#[test] 20fn bar_info_wire_zeroed_all_zero() { 21 let bar = BarInfoWire::zeroed(); 22 assert_eq!(bar.tag, BAR_TAG_NONE); 23 assert_eq!(bar.flags, 0); 24 assert_eq!(bar.io_port_base, 0); 25 assert_eq!(bar.io_size, 0); 26 assert_eq!(bar._reserved, [0; 2]); 27 assert_eq!(bar.mem_phys_base, 0); 28 assert_eq!(bar.mem_size, 0); 29} 30 31mod zerocopy_roundtrip { 32 use super::*; 33 use proptest::prelude::*; 34 35 proptest! { 36 #[test] 37 fn bar_info_wire_roundtrip(bytes in proptest::collection::vec(any::<u8>(), 24)) { 38 let entry = BarInfoWire::read_from_bytes(&bytes).expect("24 bytes must parse"); 39 let out = entry.as_bytes(); 40 prop_assert_eq!(out, &bytes[..]); 41 } 42 43 #[test] 44 fn pci_device_info_wire_roundtrip(bytes in proptest::collection::vec(any::<u8>(), 176)) { 45 let entry = PciDeviceInfoWire::read_from_bytes(&bytes).expect("176 bytes must parse"); 46 let out = entry.as_bytes(); 47 prop_assert_eq!(out, &bytes[..]); 48 } 49 50 #[test] 51 fn bar_info_wire_short_buffer_fails(len in 0..24usize) { 52 let bytes: Vec<u8> = (0..len).map(|i| i as u8).collect(); 53 prop_assert!(BarInfoWire::read_from_bytes(&bytes).is_err()); 54 } 55 56 #[test] 57 fn pci_device_info_wire_short_buffer_fails(len in 0..176usize) { 58 let bytes: Vec<u8> = (0..len).map(|i| i as u8).collect(); 59 prop_assert!(PciDeviceInfoWire::read_from_bytes(&bytes).is_err()); 60 } 61 } 62}