test: run portable core checks without corpus data - #1028
Merged
Merged
Conversation
andiwand
force-pushed
the
review/09-release-arguments
branch
from
October 4, 2026 20:21
78adb9f to
62e39ad
Compare
andiwand
force-pushed
the
review/10-portable-smoke-tests
branch
from
October 4, 2026 20:30
bebc4c0 to
0292300
Compare
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.
🤖 Generated with Claude Code
Linux and Windows CI compiled the C++ tests but never ran them. Even selecting an in-memory test without fetched data aborted during corpus registration, before GoogleTest applied its filter.
Treat missing optional corpus data as an empty fixture list, and run 73 existing stream, crypto, path, coordinate and image tests on Linux/Windows. macOS retains its corpus job, avoiding another overlapping run there. Run the release-helper tests once in the Linux binding job as well.
This adds platform coverage without a second test implementation, a new framework or multi-gigabyte data downloads.
Validation: all 73 selected CTest cases passed with the fixture directory physically absent, then restored. All workflows pass actionlint/ShellCheck. Native C++ build passed; the new Linux/Windows execution is for CI to verify.
Repository-wide review summary
The pass combined static analysis of all 217 core translation units with manual review of shared I/O, container/crypto boundaries, format adapters and selected parsing/editing paths, image/font rendering, binding ownership, frontend integration, and build/release tooling. It is a risk-focused pass across the repository, not a claim that every path is proven correct.
Merge order:
Keep the shared registry/element-adapter model, generic renderer and shared formula/number-format engines. The useful extra sharing here is narrow: one unsupported-edit default and one image-buffer size check. A general XML adapter or parser merger would couple different format semantics; splitting large modules without a demonstrated boundary or build-time benefit would mostly move code. Those rewrites are not justified by this pass.
Test strategy: add regressions at the lowest shared layer, retain format tests that verify different integration contracts, and reuse existing cases in CI. Do not consolidate independent expected-value oracles just because their fixtures look alike. Broader follow-up candidates include disk-walker copy semantics and the maximum-coordinate contract; both need a clear API decision before a structural change.
Validation across the stack: 1,951 distinct C++ cases, 98 Python cases, 78 Java cases, and 715 checks across 20 browser pages passed. All 50 PDF corpus cases passed with 1,209 output files unchanged. The 73-case smoke selection also passed without fixture data. Release checks passed two unit tests and five executions of the actual workflow shell blocks; all workflows passed actionlint/ShellCheck. Changed C++ lines passed clang-tidy. Rebased shared-path/stream/formula cases passed again.
Local execution was on macOS. Windows/Linux CI, Android/WASM execution, Apple slices and real Safari behavior remain platform validation limits; CI is still running. No release was dispatched.