Skip to content

Harden fixed-width band padding and regression coverage - #28

Open
dutch2005 wants to merge 1 commit into
OpenPrinting:masterfrom
dutch2005:codex/issue-23-regression
Open

dutch2005 wants to merge 1 commit into
OpenPrinting:masterfrom
dutch2005:codex/issue-23-regression

Conversation

@dutch2005

@dutch2005 dutch2005 commented Sep 4, 2026 •

Copy link
Copy Markdown

Summary

  • Zero-initialize each complete fixed-width protocol band and copy rows using the protocol stride.
  • Split the legacy compression implementation into focused modules under 200 lines.
  • Make warning-gated builds clean, including QPDL header bounds and checked swap-file I/O.
  • Add fixed-width and variable-width protocol goldens, PPD characterization, C++98 compatibility, and C++23 ASan/UBSan tests.

Relationship

Follow-up to #23, which upstream already closed after the original ML-1520 fix and physical-printer confirmation. This hardening PR is based directly on current OpenPrinting master and does not depend on or modify #22.

Verification

  • Exact head: c1ddf92
  • Docker matrix: normal, no-thread, no-JBIG, ASan/UBSan
  • Warnings are fatal in test builds; the raw LXC log has zero compiler diagnostics and zero sanitizer findings.
  • ML-2010 A5 golden: ba867847558f3aaab66396cb6905ef0a8d1f6d12468b577c3c0ad3c545298e3c
  • ML-1520 A5 golden: efd1192e314342a6b05ef901d445fa0dceaee408ffcdbf0bc76611b5ea03da37
  • Checked page, band, and plane serialization rejects truncation and short I/O.
  • Generated fixed-bandwidth PPD characterization passed standalone from a clean archive.
  • The exact Git archive was tested in Docker inside LXC 9100.

Remaining external gate

A maintainer should decide whether fresh physical fixed-width printer testing is required before merge; this PR does not claim that new hardware test.

@dutch2005
dutch2005 force-pushed the codex/issue-23-regression branch from 637bc8f to a5c9030 Compare September 4, 2026 18:23
Keep reduced-paper fixed-width bands deterministic and add warning-clean regression coverage across supported build modes.

Follow-up to OpenPrinting#23.
@dutch2005
dutch2005 force-pushed the codex/issue-23-regression branch from a5c9030 to c1ddf92 Compare September 4, 2026 18:28
@dutch2005

Copy link
Copy Markdown
Author

Exact-head verification for c1ddf92 is complete.

  • Hosted workflow passed: https://github.com/dutch2005/splix/actions/runs/33906041215
  • Exact Git archive SHA-256: �1549a3a69f72dd07c754b949142736fab0ffe6cf83cc28d8aa36c043a04a532
  • Docker in LXC 9100: normal, no-thread, no-JBIG, and fail-closed ASan/UBSan all passed.
  • Eight protocol golden checks passed across the matrix (ML-2010 and fixed-width ML-1520).
  • Raw LXC and hosted logs contain zero compiler diagnostics and zero sanitizer findings.
  • Checked page/band/plane serialization round-trip and truncation rejection passed.
  • GitHub reports this head MERGEABLE with zero review threads.

The upstream PR currently has no attached check rollup because the successful workflow ran on the fork push. Fresh physical fixed-width printer testing and substantive maintainer review remain external merge gates.

@zeddapuras zeddapuras mentioned this pull request Oct 6, 2026

This branch has not been deployed

No deployments
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