use super::header::MAGIC;
pub const CLUSTER_BITS: u32 = 9;
pub const CLUSTER_SIZE: usize = 1 << CLUSTER_BITS;
const L1_OFFSET: u64 = 512;
const REFCOUNT_OFFSET: u64 = 1024;
const L2_OFFSET: u64 = 1536;
const DATA_OFFSET: u64 = 2048;
#[cfg_attr(not(any(test, feature = "test-helpers")), allow(dead_code))]
pub fn test_qcow2(sector_data: &[u8]) -> Vec<u8> {
let mut hdr = vec![0u8; CLUSTER_SIZE];
hdr[0..4].copy_from_slice(&MAGIC.to_be_bytes());
hdr[4..8].copy_from_slice(&2u32.to_be_bytes()); hdr[20..24].copy_from_slice(&CLUSTER_BITS.to_be_bytes());
hdr[24..32].copy_from_slice(&(CLUSTER_SIZE as u64).to_be_bytes()); hdr[36..40].copy_from_slice(&1u32.to_be_bytes()); hdr[40..48].copy_from_slice(&L1_OFFSET.to_be_bytes());
hdr[48..56].copy_from_slice(&REFCOUNT_OFFSET.to_be_bytes());
hdr[56..60].copy_from_slice(&1u32.to_be_bytes());
let mut l1 = vec![0u8; CLUSTER_SIZE];
l1[0..8].copy_from_slice(&L2_OFFSET.to_be_bytes());
let refcount = vec![0u8; CLUSTER_SIZE];
let mut l2 = vec![0u8; CLUSTER_SIZE];
l2[0..8].copy_from_slice(&DATA_OFFSET.to_be_bytes());
let mut data = vec![0u8; CLUSTER_SIZE];
let n = sector_data.len().min(CLUSTER_SIZE);
data[..n].copy_from_slice(§or_data[..n]);
let mut img = Vec::new();
img.extend_from_slice(&hdr);
img.extend_from_slice(&l1);
img.extend_from_slice(&refcount);
img.extend_from_slice(&l2);
img.extend_from_slice(&data);
img
}