Conversation
Add an MX_COVERAGE CMake option and a `make coverage-core-dev` target that builds the trimmed core-dev tree instrumented with --coverage, runs the core roundtrip suite, and runs gcovr filtered to src/private/mx/core/. It runs in the pinned Docker toolchain, so local and CI results match with no host dependency beyond Docker. A Linux-only CI job runs it in parallel with the existing jobs, writes the summary to the run's job summary, and uploads a self-contained HTML report as an artifact. It is advisory and does not gate. The coverage build is invoked via the Dockerfile.coverage symlink so BuildKit selects Dockerfile.coverage.dockerignore, which includes the data corpus the core roundtrip suite scans at runtime. The gate targets keep the tiny .dockerignore and their small build context. Refs #58, #156
Post the gcovr summary as a sticky pull-request comment (one comment, updated in place) linking the HTML report artifact, so results are visible inline on the PR instead of buried in the run's job summary. gcovr now also writes a 3-line summary.txt; CI turns it into a Markdown table reused by the job summary and the comment. The uploaded artifact is the single self-contained index.html, stored uncompressed.
Core-dev coverage
|
| Metric | Coverage | Covered / Total |
|---|---|---|
| Lines | 52.1% | 17624 / 33846 |
| Functions | 50.0% | 3798 / 7589 |
| Branches | 35.3% | 12649 / 35846 |
Download HTML report - unzip and open index.html.
Commit daeefbbf0b8aef94ac1c0895a3a6e25dcdac80fc.
Use `gh pr comment` instead of a sticky comment so each push adds a new comment, keeping a per-run coverage history on the PR. Drops the third-party sticky-comment action.
Core-dev coverage
|
| Metric | Coverage | Covered / Total |
|---|---|---|
| Lines | 52.1% | 17624 / 33846 |
| Functions | 50.0% | 3798 / 7589 |
| Branches | 35.3% | 12649 / 35846 |
Download HTML report - unzip and open index.html.
Commit 408f834a367d2db8db2bb856bca0cb5c7e448ec2.
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
Adds a containerized
make coverage-core-devtarget.MX_COVERAGECMake option adds--coverageinstrumentation.make coverage-core-devbuilds and runs thecore roundtrip suite with gcovr filtered to
src/private/mx/core/.summary to the run's job summary, and uploads a self-contained HTML
report as an artifact. Advisory only; it does not gate.
Implementation notes
To keep the other contexts small, the coverage build is invoked via the
Dockerfile.coveragesymlink, which makes BuildKit selectDockerfile.coverage.dockerignore(data corpus included).Current result: 52.1% lines, 50.0% functions, 35.3% branches.
Directly related to #156 which is tracked by #58