MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / seek_data_common

Function seek_data_common

block/src/qcow/mod.rs:3855–3885  ·  view source on GitHub ↗
(direct: bool)

Source from the content-addressed store, hash-verified

3853 }
3854
3855 fn seek_data_common(direct: bool) {
3856 with_default_file(0x30000, direct, |mut file| {
3857 // seek_data at or after the end of the file should return None
3858 assert_eq!(file.seek_data(0x10000).unwrap(), None);
3859 assert_eq!(seek_cur(&mut file), 0);
3860 assert_eq!(file.seek_data(0x10001).unwrap(), None);
3861 assert_eq!(seek_cur(&mut file), 0);
3862
3863 // Write some data to [0x10000, 0x20000)
3864 let b = [0x55u8; 0x10000];
3865 file.seek(SeekFrom::Start(0x10000)).unwrap();
3866 file.write_all(&b).unwrap();
3867 assert_eq!(file.seek_data(0).unwrap(), Some(0x10000));
3868 assert_eq!(seek_cur(&mut file), 0x10000);
3869
3870 // seek_data within data should return the same offset
3871 assert_eq!(file.seek_data(0x10000).unwrap(), Some(0x10000));
3872 assert_eq!(seek_cur(&mut file), 0x10000);
3873 assert_eq!(file.seek_data(0x10001).unwrap(), Some(0x10001));
3874 assert_eq!(seek_cur(&mut file), 0x10001);
3875 assert_eq!(file.seek_data(0x1FFFF).unwrap(), Some(0x1FFFF));
3876 assert_eq!(seek_cur(&mut file), 0x1FFFF);
3877
3878 assert_eq!(file.seek_data(0).unwrap(), Some(0x10000));
3879 assert_eq!(seek_cur(&mut file), 0x10000);
3880 assert_eq!(file.seek_data(0x1FFFF).unwrap(), Some(0x1FFFF));
3881 assert_eq!(seek_cur(&mut file), 0x1FFFF);
3882 assert_eq!(file.seek_data(0x20000).unwrap(), None);
3883 assert_eq!(seek_cur(&mut file), 0x1FFFF);
3884 });
3885 }
3886
3887 #[test]
3888 fn seek_hole() {

Callers 2

seek_dataFunction · 0.85
seek_data_directFunction · 0.85

Calls 2

with_default_fileFunction · 0.85
seekMethod · 0.45

Tested by 2

seek_dataFunction · 0.68
seek_data_directFunction · 0.68