| 2538 | |
| 2539 | #[test] |
| 2540 | fn header_v3_with_backing() { |
| 2541 | let header = QcowHeader::create_for_size_and_path(3, 0x10_0000, Some("/my/path/to/a/file")) |
| 2542 | .expect("Failed to create header."); |
| 2543 | let mut disk_file: RawFile = RawFile::new(TempFile::new().unwrap().into_file(), false); |
| 2544 | header |
| 2545 | .write_to(&mut disk_file) |
| 2546 | .expect("Failed to write header to shm."); |
| 2547 | disk_file.rewind().unwrap(); |
| 2548 | let read_header = QcowHeader::new(&mut disk_file).expect("Failed to create header."); |
| 2549 | assert_eq!( |
| 2550 | header.backing_file.as_ref().map(|bf| bf.path.clone()), |
| 2551 | Some(String::from("/my/path/to/a/file")) |
| 2552 | ); |
| 2553 | assert_eq!( |
| 2554 | read_header.backing_file.as_ref().map(|bf| &bf.path), |
| 2555 | header.backing_file.as_ref().map(|bf| &bf.path) |
| 2556 | ); |
| 2557 | } |
| 2558 | |
| 2559 | /// Helper to create a test file with header extensions |
| 2560 | fn create_header_with_extension(ext_type: u32, ext_data: &[u8]) -> (RawFile, QcowHeader) { |