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

Function test_compressed_read

block/src/qcow/mod.rs:4595–4615  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

4593
4594 #[test]
4595 fn test_compressed_read() {
4596 let cluster_size = 65536usize;
4597 let data: Vec<u8> = (0..=255).cycle().take(cluster_size).collect();
4598 let temp = TempFile::new().unwrap();
4599 {
4600 let raw_file = RawFile::new(temp.as_file().try_clone().unwrap(), false);
4601 let mut qcow = QcowFile::new(raw_file, 3, 100 * 1024 * 1024, false).unwrap();
4602 qcow.seek(SeekFrom::Start(0)).unwrap();
4603 qcow.write_all(&data).unwrap();
4604 qcow.flush().unwrap();
4605 }
4606
4607 compress_allocated_clusters(&mut temp.as_file().try_clone().unwrap());
4608
4609 let raw_file = RawFile::new(temp.as_file().try_clone().unwrap(), false);
4610 let mut qcow = QcowFile::from(raw_file).unwrap();
4611 qcow.seek(SeekFrom::Start(0)).unwrap();
4612 let mut buf = vec![0u8; cluster_size];
4613 qcow.read_exact(&mut buf).unwrap();
4614 assert_eq!(buf, data);
4615 }
4616}

Callers

nothing calls this directly

Calls 6

newFunction · 0.85
takeMethod · 0.80
try_cloneMethod · 0.45
seekMethod · 0.45
flushMethod · 0.45

Tested by

no test coverage detected