Repository navigation
ci: fix coverage profile collection and move benchmarks to PR checks - #41
Merged
Merged
Conversation
Coverage fix: gtest_discover_tests runs each TEST() as a separate process. Without LLVM_PROFILE_FILE, all 152 processes wrote to the same default.profraw, each overwriting the previous one — only the last test's coverage survived. Set LLVM_PROFILE_FILE=build/profile/ %p-%m.profraw so each process gets its own file. Benchmark restructure: remove the benchmark job from ci.yml (which runs on push to main, meaning a bench failure put main in a failed state with no easy rollback). Instead: - ci-pr.yml: new benchmark job runs on PRs (informational only, continue-on-error, artifacts only — never blocks merge) - bench-publish.yml: dedicated push-to-main workflow that generates and commits charts to docs/assets/bench/
sentomk
force-pushed
the
fix/coverage-and-bench-trigger
branch
from
July 31, 2026 04:18
7ebde55 to
f47bac0
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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
Coverage was reporting ~27% because gtest_discover_tests runs each
TEST() as a separate process (152 total), but LLVM_PROFILE_FILE was
never set. Every process wrote to the same default.profraw, each
overwriting the previous one -- only the last test case's data
survived. The benchmark job in ci.yml was also push-to-main only,
meaning a bench failure left main in a red state with no rollback.
Changes
process writes its own profraw file. Removed the benchmark job.
informational only, uploads artifacts, never blocks merge.
generates charts and commits them to docs/assets/bench/.
Testing
CI on this PR verifies all three changes: coverage should jump from
~27% to 70%+, benchmark job runs as informational PR check, and
bench-publish triggers on next push to main.