Test-build pipeline Phase B, PR 2: consolidate scattered validation logic - #1219
Merged
mkarlesky merged 3 commits intoAug 20, 2026
Merged
Conversation
…in_use raise paths Neither validator's raise path had system-level coverage before now -- only unit-tested, with the actual CLI-facing error text and exit status never confirmed end-to-end. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Standardizes on the same calling convention every other validator in the pipeline already uses. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…dations module validate_mocks_in_use/validate_partials_in_use (TestBuildSetup), validate_header_includes (TestBuildPlanner), and validate! (TestSourceFileDirectiveResolver) were each independently defined, identical in shape (raise CeedlingException on a real, user-facing configuration mistake) but with no shared home -- same pattern TestPipelineHelpers already covers for non-validation helpers. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This was referenced Aug 20, 2026
Merged
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.
Summary
Second of four PRs implementing Phase B of the test-build pipeline (
lib/ceedling/test_invoker/) architecture review, following PR #1217 (Phase A) and PR #1218 (Phase B, PR 1).Four independent validators --
TestBuildSetup#validate_mocks_in_use/#validate_partials_in_use,TestBuildPlanner#validate_header_includes, andTestSourceFileDirectiveResolver#validate!-- each raiseCeedlingExceptionon a real, user-facing configuration mistake, but had no shared home and no consistent calling convention.validate_mocks_in_use's norvalidate_partials_in_use's raise path had any system-level coverage, only unit tests. New system spec (spec/system/mocks_partials_configuration_validation_spec.rb) confirms both against the real CLI, run against the unrefactored code first to lock in current behavior before touching anything.validate_header_includes's two positional params to keyword args, matching the other three validators' existing convention.TestBuildValidationsmodule (lib/ceedling/test_invoker/test_build_validations.rb), mixed intoTestBuildSetup,TestBuildPlanner, andTestSourceFileDirectiveResolver-- same patternTestPipelineHelpersalready established for non-validation shared helpers in this same directory.Two things the new system spec surfaced along the way, worth knowing for future work here: CMock's real default mock-file prefix is
mock_(lowercase), not theMocknaming unit-test doubles in this codebase happen to stub; and Partials-configuration-macro scanning (TEST_PARTIAL_*_MODULE(), etc.) only happens when test preprocessing is enabled (:project ↳ :use_test_preprocessorother than:none, this project's own default) -- sovalidate_partials_in_use's "used without configuring" check can only ever fire under that setting.Test plan
bundle exec rspec spec/units-- 2588 examples, 0 failuresthrowtheswitch/madsciencelab-plugins:v1.1.4) targeted run:spec/system/mocks_partials_configuration_validation_spec.rb(new),spec/system/header_include_path_validation_spec.rb,spec/system/test_source_file_directive_spec.rb-- 14 examples, 0 failures🤖 Generated with Claude Code