Skip to content

Add CID blobs for ITK PR #6032 VTI ImageIO test fixtures#46

Merged
hjmjohnson merged 1 commit intoInsightSoftwareConsortium:gh-pagesfrom
hjmjohnson:add-vti-fixture-cid-blobs
May 1, 2026
Merged

Add CID blobs for ITK PR #6032 VTI ImageIO test fixtures#46
hjmjohnson merged 1 commit intoInsightSoftwareConsortium:gh-pagesfrom
hjmjohnson:add-vti-fixture-cid-blobs

Conversation

@hjmjohnson
Copy link
Copy Markdown
Member

23 unique CID blobs (24 fixtures; two .raw payloads share content) for the test suite added by InsightSoftwareConsortium/ITK#6032. Once this lands, the in-tree binaries on PR #6032 can be replaced by <filename>.cid pointer files (already prepared on the local PR branch) so the ITK source tree stops growing with binary fixtures.

Fixture set
Fixture Purpose
reco2D_16line.{vti,mha} 2-D scalar round-trip pair
VTI_oblique_direction.{vti,mhd,raw} 45° rotation Direction round-trip
VTI_rgba_u8_appended_raw.{vti,mhd,raw} RGBA appended-raw
VTI_scalar_u8_appended_raw.{vti,mhd,raw} scalar appended-raw
VTI_scalar_f32_zlib_appended.{vti,mhd,raw} zlib-compressed appended
VTI_vector3_f32_zlib_appended.{vti,mhd,raw} Vector<float,3> + zlib
VTI_tensor_f32_ascii.{vti,mhd,raw} symmetric tensor ASCII
VTI_guard_lz4.vti F-001 guard (LZ4 read)
VTI_guard_lzma.vti F-002 guard (LZMA read)
VTI_guard_multipiece.vti F-005 guard (multi-Piece)
VTI_guard_unknown_compressor.vti F-010 catch-all

All produced by the deterministic Python-stdlib generator at Modules/IO/VTK/test/generate_vti_fixtures.py on the consumer PR. Total uncompressed ≈ 100 KB; well under any ExternalData ceiling.

Verification

Each blob's filename is the IPFS CIDv1 (sha2-256 raw) of its bytes — computed via ipfs add --cid-version=1 --only-hash --quieter <file> and verified to match what bafkrei… returns from ipfs add on a fresh checkout. The consumer PR's <file>.cid pointer files contain the matching CIDs verbatim, so ExternalData can resolve via any of the standard ITK gateways:

  • https://insightsoftwareconsortium.github.io/ITKTestingData/CID/{cid}
  • https://ipfs.io/ipfs/{cid}
  • https://gateway.pinata.cloud/ipfs/{cid}
  • https://cloudflare-ipfs.com/ipfs/{cid}
  • https://dweb.link/ipfs/{cid}

23 unique blobs (24 fixtures; two .raw payloads share content) for
Modules/IO/VTK/test/Input/ in the upstream ITK repository.  The blobs
back the VTI reader/writer test suite (PR #6032 / branch vtiSupport)
and let the in-tree binaries be replaced by .cid pointer files so the
ITK source tree stops growing with binary fixtures.

Source files:
  reco2D_16line.{vti,mha}                           (originally in-tree)
  VTI_oblique_direction.{vti,mhd,raw}               (Direction round-trip)
  VTI_rgba_u8_appended_raw.{vti,mhd,raw}            (RGBA appended-raw)
  VTI_scalar_u8_appended_raw.{vti,mhd,raw}          (scalar appended-raw)
  VTI_scalar_f32_zlib_appended.{vti,mhd,raw}        (zlib-compressed)
  VTI_vector3_f32_zlib_appended.{vti,mhd,raw}       (vector + zlib)
  VTI_tensor_f32_ascii.{vti,mhd,raw}                (symmetric tensor)
  VTI_guard_lz4.vti                                 (F-001 guard fixture)
  VTI_guard_lzma.vti                                (F-002 guard fixture)
  VTI_guard_multipiece.vti                          (F-005 guard fixture)
  VTI_guard_unknown_compressor.vti                  (F-010 guard fixture)

Total uncompressed size ≈ 100 KB; well under the ExternalData ceiling.

The matching ITK PR (#6032) replaces each in-tree binary with
<filename>.cid containing the IPFS CIDv1 (sha2-256 raw) above so
ExternalData fetches it from one of the standard ITK content-link
gateways at test time.
@hjmjohnson hjmjohnson merged commit 34cc8ac into InsightSoftwareConsortium:gh-pages May 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant