Skip to content

Feature: Partials#1131

Merged
mkarlesky merged 628 commits into
masterfrom
feature/partials
May 21, 2026
Merged

Feature: Partials#1131
mkarlesky merged 628 commits into
masterfrom
feature/partials

Conversation

@mkarlesky
Copy link
Copy Markdown
Member

Partials slice and dice source files and header files to allow testing and mocking of "private" functions (static, inline, etc.). Among other things, this allows mocking of functions inside the same source file under test.

Collapsing repeated whitespace between closing paren and opening brace mangled reasonable code formatting for `if` blocks, etc.
- Partializer is responsibe for adding `extern` in `reconstruct_variables()` instead of the generator
- Bug fix: Empty variable declaration strings are removed from resulting reconstruction of variable array
These will replace simple strings, parsing, and formatting in `#include` handling
The preprocessor can at times expand elements across multiple lines in preprocessor output that all belong to the same line in the original source. New handling gathers that staggered content into a single line.
- Revised stand-in header file creation to target directories
New function that does not rely on unnecessary test-specific preprocessing steps
mkarlesky added 29 commits May 13, 2026 23:00
- Added mc/dc support to coverage reporting
- Added dynamic discovery of console coverage reports to handle any number of lines of output
Ceedling generates include guards for preprocessed files. It then generates new include guards for generated Partials. With C langauge extraction, the first set of include guards ends up in the generated Partials. These are pointless symbols that muck up a beautiful file.
This supports advanced features of containers like `Array#select` and `Array#reject` calls. Rake FileLists can require `=~`, for instance.
Activate/deactivate are only run if a virtual environment is in use (local vs. CI builds)
Removing newlines in functions can break coverage instrumentation for relative line numbering
-Broke up GCov plugin documenation into a sub-section
- Created a new Code Coverage reference section to summarize GCov option lookup
Replaced brittle handling of function signature and code_block handling for function definitions. This new approach preserves newlines throughout an extracted function, still cleans the signature for other purposes, robustly handles decorator removal from a function definition block, and updates `#line` numbering if necessary due to leading newline cleanup after decoractor removal.
@mkarlesky mkarlesky merged commit df8a322 into master May 21, 2026
12 checks passed
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.

2 participants