HDF5 1.4/1.6-era files store the layout as version 1 or 2: version, dimensionality, class, 5 reserved bytes, an address (contiguous and chunked only), dimensionality 32-bit sizes (with the trailing element-size dimension) and, for compact storage, a 32-bit size and the raw data. They failed with InvalidLayoutVersion — 84 of the 686 files in the audit sweep, 205 datasets. Map them onto the existing variants: chunked uses the same version-1 B-tree chunk index as version 3 and is reported as version 3, so every chunked read path (filters, selections, caches) applies unchanged. Contiguous size is the product of the stored dimensions, which is what libhdf5 computes from the dataspace; a disagreement fails the reader's size check instead of returning wrong data. Fixtures are HDF5's own deflate.h5 (v1, chunked + deflate) and h5ex_g_iterate.h5 (v2, contiguous, one unallocated dataset); the new interop test compares every dataset byte for byte against h5py. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Legacy (HDF5 1.4/1.6-era) fixtures
Unmodified copies of the HDF Group's own test files from
https://github.com/HDFGroup/hdf5 at a3cf1ea82cc7a66e50029a688121e1b105a7ce88
(BSD-style license, see that repository's LICENSE). Current libraries cannot
write these structures, so they are kept as files.
| File | Upstream path | Exercises |
|---|---|---|
deflate.h5 |
test/testfiles/deflate.h5 |
Data Layout message v1, chunked + deflate (v1 B-tree index) |
h5ex_g_iterate.h5 |
HDF5Examples/C/H5G/h5ex_g_iterate.h5 |
Data Layout message v2, contiguous; an unallocated dataset |