Repository navigation
test(j2k): enforce decode-route output and heap baselines - #318
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a regression guard for route-dependent output, error-class and allocation changes. It covers 1,444 cases across 22 generated images: full and region decodes, reduced resolution, bounded rows, 8-/16-bit and native output, serial and local-pool execution, and constrained planes budgets. Fixtures include offsets, edge tiles, multiple components, reversible and irreversible transforms, terminated classic passes, and HT packets split across layers and tile-parts.
The guard fails on output differences from the planes route, typed outcome changes, malformed or incomplete baselines, duplicate or missing cases, and release heap peaks above the accepted target baseline. The heap limit is the accepted peak plus its measured spread, 64 KiB and 1/64 of the accepted peak. Pool cases repeat five times, or twenty for large/noisy cases. Debug runs compare outcomes and case sets; heap comparisons require the same target and release profile.
ARM64 macOS and x86-64 Linux have separate baselines. Their headers explain the accepted per-worker scratch increases. Existing native multi-segment tests cover BYPASS/RESET routes and output separately; they do not supply heap-peak baselines.
This follows #317. It contains only the guard, its baselines and the test-only allocation-probe dependency. It changes no production API, #133 ring depths, error replay, band-release rule or serial executor. None of its changed files have prior jcoyne contributions in the reviewed upstream history.
Validation
cargo xtask teston this head passes on macOS: 5,656 passed, 0 failed, 52 ignored.