Skip to content

Conversation

@lilith
Copy link
Contributor

@lilith lilith commented Jan 26, 2026

Summary

  • Add self-contained conformance tests comparing jxl-rs output against the official libjxl conformance test suite
  • Add GitHub Actions workflow that reports results without blocking PRs
  • Tests auto-fetch conformance data from libjxl/conformance repo

Details

The conformance tests:

  • Parse NPY reference files for pixel comparison
  • Support all pixel formats (u8, u16, f16, f32)
  • Cache conformance data in CI for faster runs
  • Use #[ignore] attribute - run with cargo test conformance -- --ignored --nocapture

Currently passing 18/23 tests. Failures are due to missing features (CMS transforms, specific edge cases) that can be addressed in follow-up PRs.

Test plan

  • cargo test passes (conformance tests are ignored by default)
  • cargo test conformance -- --ignored runs conformance suite
  • CI workflow runs and reports results in step summary

Add self-contained conformance tests that compare jxl-rs output against
the official libjxl conformance test suite reference images.

Features:
- Automatic cloning of libjxl/conformance repo to target/conformance/
- NPY reference file parsing for pixel comparison
- Support for all pixel formats (u8, u16, f16, f32)
- GitHub Actions workflow that reports results without blocking PRs
- Cached conformance data in CI for faster runs

Run with: cargo test conformance -- --ignored --nocapture

Currently passing 18/23 tests.
@github-actions
Copy link

Benchmark @ fbdf262

MULTI-FILE BENCHMARK RESULTS (4 files)
  CPU architecture: x86_64
  WARNING: System appears noisy: high system load (2.16). Results may be unreliable.
Statistics:
  Confidence:               99.0%
  Max relative error:        3.0%

Comparing: 63b76047 (Base) vs 840f3a14 (PR)

File Base (MP/s) PR (MP/s) Δ%
bike.jxl 35.264 35.161 -0.29% ±2.0%
green_queen_modular_e3.jxl 9.070 9.049 -0.24% ±1.9%
green_queen_vardct_e3.jxl 29.494 29.361 -0.45% ±1.9%
sunset_logo.jxl 2.873 2.885 +0.40% ±0.9%

@veluca93
Copy link
Member

What's the advantage of replicating the conformance workflow over using https://github.com/libjxl/conformance ?

@lilith
Copy link
Contributor Author

lilith commented Jan 26, 2026 via email

@veluca93
Copy link
Member

There is already a workflow for conformance tests though: https://github.com/libjxl/jxl-rs/blob/main/.github/workflows/pull_request.yml#L159

@zond
Copy link
Collaborator

zond commented Jan 26, 2026

That is what it fetches though? Not sure what you mean specifically. That repo is what has driven my patches and should be part of CI testing as a goal, not a breaking workflow for now.

On Mon, Jan 26, 2026, 12:33 PM Luca Versari @.> wrote: veluca93 left a comment (libjxl/jxl-rs#660) <#660 (comment)> What's the advantage of replicating the conformance workflow over using https://github.com/libjxl/conformance ? — Reply to this email directly, view it on GitHub <#660 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA2LHZIVWFNO5WNE2A6VFD4IZTZ5AVCNFSM6AAAAACS6CMXVCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTQMBRGM3DGNZSGI . You are receiving this because you authored the thread.Message ID: @.>

Note that we have the conformance tests as a breaking part of the workflow right now (the numpy + ICC parts are breaking, not the PNG parts). See https://github.com/libjxl/jxl-rs/blob/main/.github/workflows/pull_request.yml#L159

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.

3 participants