Skip to content

chore(tests,bench): fixtures and benchmark final pass for the gamut migration - #56

Merged
justin13888 merged 1 commit into
masterfrom
35-fixtures-benches-final
Jul 19, 2026
Merged

chore(tests,bench): fixtures and benchmark final pass for the gamut migration#56
justin13888 merged 1 commit into
masterfrom
35-fixtures-benches-final

Conversation

@justin13888

Copy link
Copy Markdown
Collaborator

Closes #35.

Stacked on #55; merge order #42 → … → #55 → this.

What is Delivered

  • TEST_FIXTURES.md brought to post-migration reality (backend replacements, changed encoder bytes, corrected test-invocation list, the generated HEIC fixture); fixtures.json audited — no change needed. Stray root images (IMG_1347.jpg, _JIC7790.jpeg, test.jpeg — untracked, zero references) moved into gitignored test_fixtures/.
  • Benches: first codec-exercising benches (JPEG + PNG round-trips on gamut backends) plus gated HEIC/AVIF hardware-decode benches that self-generate fixtures and skip cleanly without tools/GPU. cargo bench --no-run green on default + full.
  • Baselines, honestly: pre-migration baselines were never captured — documented as such rather than invented (per-codec before/after live in feat(png)!: migrate PNG encode to gamut-png #47/feat(jpeg)!: migrate JPEG to gamut-jpeg; delete jpegli stack and img-parts #52). docs/BENCHMARKS.md records the going-forward --quick baseline from this host, including real-GPU HEIC (9.2 ms) and AVIF (9.5 ms) hardware decode.
  • Example coverage per AGENTS.md: all 8 examples build and ran with full — every migrated format exercised end-to-end (ARW→JPEG develop, DNG→PNG export, live hardware HEIC decode; AVIF hits only the documented profile-1 scope gate).
  • Malformed corpus upstream: 11 hostile + 2 robustness TIFF cases from the deleted binrw parser tests reconstructed from git history and contributed on gamut#264, with provenance notes.

Verification Done

Run independently: cargo test --workspace 387/0; --features full 563/0; bench compile clean both configs; clippy -D warnings 0; root images gone from the repo root and present in test_fixtures/. lefthook green.

…igration

TEST_FIXTURES.md records the post-migration reality: which gamut backends
replaced which deleted ones, that encoder bytes changed, the corrected test
invocation list (tiff_parser_tests is gone; ifd_decoder_tests and the hw
decode suites are in), and the locally generated HEIC fixture. fixtures.json
needed no change. The three stray root images (untracked personal files with
zero code references) moved into the gitignored test_fixtures/.

Benches: decode.rs gains JPEG and PNG encode+decode round-trip benches on the
gamut backends — the first benches that exercise codecs — plus gated HEIC and
AVIF hardware-decode benches that self-generate fixtures via heif-enc/avifenc
and skip cleanly without the tools or a GPU. cargo bench --no-run passes on
default and full features.

Pre-migration baselines were never captured; that is recorded honestly rather
than invented (per-codec before/after numbers live in the PNG and JPEG
migration PRs). docs/BENCHMARKS.md stores the post-migration --quick baseline
from this host (Ryzen 7 7800X3D + RX 7900 VAAPI): jpeg 6.5/6.0 ms encode/
decode at 512x512, png 23.0/4.7 ms, heic and avif hardware decode 9.2/9.5 ms
on the real GPU, amaze demosaic 199.5 ms at 2000x2000.

Example coverage verified per the AGENTS.md methodology: all eight examples
build and run with full features — every migrated format is exercised, with
HEIC hardware-decoding live and AVIF failing only on the documented
profile-1/VAAPI-scope gate (gamut#303 territory).

The malformed-TIFF corpus from the deleted binrw parser tests (11 hostile
cases + 2 robustness cases, reconstructed from git history) is contributed
upstream on visualcommons/gamut#264 per the issue.
Base automatically changed from 34-feature-tree-ci-rework to master July 19, 2026 01:50
@justin13888
justin13888 merged commit 123405c into master Jul 19, 2026
@justin13888
justin13888 deleted the 35-fixtures-benches-final branch July 19, 2026 01:51
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.

Test fixtures and benchmark updates for the gamut migration

1 participant