test: exercise C++ assertions in Release CI - #102
Open
FU-max-boop wants to merge 2 commits into
Open
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.
Description
Picker configures its C++ tests as a Release build. The twelve C++ test files
contain 214 standard
assert(...)checks, but Release definesNDEBUG, sothose conditions are not evaluated. The workflow also directly builds and
runs only
test_picker_utils, even though the current configuration registersfourteen Picker CTests (and four xcomm tests in the normal CI build).
This change:
NDEBUGfor targets createdunder
test/;test_picker_utilsfails closed ifassertions become disabled again;
an existing include directory is compared by filesystem identity, and the
internal-config test expects the parser's existing map-key hierarchy;
parallel CTest run.
Production targets retain their normal Release flags and behavior.
Related context: #54 introduced the one-binary workflow command. #96 mentioned
the path-spelling assertion that becomes active here, but did not enable
Release assertions or run the complete CTest suite. This PR does not claim to
close either item.
PR #100 was discovered during the final publication refresh. It independently
adds two parser CTests, makes the same
top.sub2.key.cexpectation correction,and normalizes the path covered here by
filesystem::equivalent. It does notenable assertions in Release or replace the one-binary CI command with CTest.
A synthetic merge of #100 and this exact head is clean: the CI and
test/CMakeLists.txtchanges occupy separate hunks, and Git resolves theidentical parser expectation. If #100 merges first, this branch should be
rebased so the duplicate expectation drops out and the path assertion can be
reconsidered against #100's stricter normalization guarantee; the assertion
and CTest mechanisms remain independent.
Dependencies: no hard semantic dependency; the #100 overlap is described
above and currently merges automatically.
Type of change
How Has This Been Tested?
Exact two-commit branch, Ubuntu 24.04 ARM64, GCC 13.3.0, CMake 3.28.3,
Release,
NO_BUILD_XSPCOMM=1:Fail-closed controls:
A separate Ubuntu ARM64 integration stack with xcomm configured built to 100%
and passed root CTest 18/18 (four xcomm plus fourteen Picker tests). That is
coexistence evidence, not a claim that the other patches in that stack belong
to this PR.
Additional checks:
git diff --check: passedmaster@c100874complete CTest execution; the partial feat(mem_direct): export trace-derived Verilator signals #100 overlap is disclosed above
Compatibility boundary
part of the evidence claim above.
/UNDEBUGpath was not executed; this PR does not claim new Windowssupport.
additional Picker tests and four configured xcomm tests. Future configured
CTests will also be included by design.
automatically; the current 14-Picker/18-root counts are scoped to
master@c100874.Checklist