Skip to content

Fix parallel coverage run for system and unit tests#584

Merged
phiwuu merged 1 commit into
mainfrom
fix/coverage-reports-swquential-execution
May 12, 2026
Merged

Fix parallel coverage run for system and unit tests#584
phiwuu merged 1 commit into
mainfrom
fix/coverage-reports-swquential-execution

Conversation

@kedarnn
Copy link
Copy Markdown
Contributor

@kedarnn kedarnn commented May 12, 2026

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.

@kedarnn kedarnn marked this pull request as ready for review May 12, 2026 13:14
@kedarnn kedarnn requested a review from a team as a code owner May 12, 2026 13:14
@kedarnn kedarnn added the internal Affects the CI, tests or refactorings only, not relevant to the end-user label May 12, 2026
@phiwuu phiwuu changed the title Fix parallel coverage run for sstem and unit tests Fix parallel coverage run for system and unit tests May 12, 2026
@phiwuu phiwuu merged commit d6f1405 into main May 12, 2026
52 checks passed
@phiwuu phiwuu deleted the fix/coverage-reports-swquential-execution branch May 12, 2026 15:01
@phiwuu
Copy link
Copy Markdown
Member

phiwuu commented May 12, 2026

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

internal Affects the CI, tests or refactorings only, not relevant to the end-user

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants