| 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 | } |