Fix parallel coverage run for system and unit tests#584
Merged
Conversation
phiwuu
approved these changes
May 12, 2026
Member
|
Coverage data shall not be combined, anyway. So regardless of the technical background, there shall always be two separate coverage runs: one for the system tests, one for the unit tests. Thanks for the fix! |
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.
Problem:
coverage combine consumes (deletes) parallel data files after combining them. When make coverage-system runs, it writes its combined output to the default .coverage file. If .coverage.unit* files overlap in discovery or the execution order is incorrect, subsequent make coverage-unit fails with:
"Couldn't combine from non-existent path '.coverage.unit*'"
This occurs because coverage 7.x auto-discovers parallel data files in the current directory, potentially consuming both .coverage.system* and .coverage.unit* files during a single combine operation. See coverage 7.14.0 release notes.
Fix:
Ensure each test execution is immediately followed by its corresponding coverage report, so data files are consumed before the next test run produces new ones. This prevents cross-contamination between unit and system coverage data.