# tests/data — VMDK Real-Image Corpus
Integration test fixtures and fuzz seed corpus.
`fuzz/corpus/fuzz_open/` symlinks here; files are not duplicated.
## Files
| `minimal.vmdk` | monolithicSparse (v1) | 1 MiB | Yes | qemu-img 11.0.0 (macOS/ARM) | Primary integration test seed |
| `dfvfs_ext2.vmdk` | monolithicSparse (v1) | 4 MiB | Yes | dfvfs test corpus (libyal) | ext2 filesystem; VMware4 origin |
| `plaso_image.vmdk` | monolithicSparse (v1) | 100 KiB | Yes | plaso test corpus (log2timeline) | Real VMware Workstation 4 image; has non-zero grain data at virtual offset 1024 |
| `stream_opt.vmdk` | streamOptimized (v3) | 1 MiB | Yes | qemu-img 11.0.0 (macOS/ARM) | All-sparse empty disk; GD/GT layout identical to v1 |
| `flat.vmdk` | twoGbMaxExtentFlat | 1 MiB | Yes (open_path only) | qemu-img 11.0.0 (macOS/ARM) | Text descriptor; open() returns Err, open_path() succeeds |
| `flat-f001.vmdk` | (raw extent for flat.vmdk) | — | No (by design) | qemu-img 11.0.0 (macOS/ARM) | Raw extent data, no VMDK header; open() returns BadMagic |
"Not supported" means `VmdkReader::open` returns `Err`, not that it panics.
These files serve as regression seeds: the reader must not panic on any of them.
## Provenance
- **qemu-img** files: generated locally with qemu-img 11.0.0 on macOS (Apple Silicon).
- **dfvfs_ext2.vmdk**: from [log2timeline/dfvfs](https://github.com/log2timeline/dfvfs) `test_data/ext2.vmdk` (Apache 2.0).
- **plaso_image.vmdk**: from [log2timeline/plaso](https://github.com/log2timeline/plaso) `test_data/image.vmdk` (Apache 2.0). VMware Workstation 4 era (`virtualHWVersion=4`, `adapterType=ide`). 200-sector disk with real filesystem data.
## External validation (not committed)
These real-world VMDKs were validated against the reader but are too large to commit:
| `Ubuntu Server v11.04 64-bit-cl1.vmdk` | pWnOS v2.0, VulnHub | 1.3 GB | 40 GiB | Opens OK; GD at sector 5151; MBR boot sector read from grain |
pWnOS v2.0 download: `https://download.vulnhub.com/pwnos/pWnOS_v2.0.7z`
Validation: `cargo run -p vmdk-cli -- info "<path>"` reported `monolithicSparse`, 42,949,672,960 bytes. Grain lookup navigated GD→GT→grain at sector 10368, read 414 non-zero bytes (x86 MBR boot code).
## Regenerating qemu-img files
```sh
qemu-img create -f vmdk tests/data/minimal.vmdk 1M
qemu-img create -f vmdk -o subformat=streamOptimized tests/data/stream_opt.vmdk 1M
qemu-img create -f vmdk -o subformat=twoGbMaxExtentFlat tests/data/flat.vmdk 1M
```