Migrate coverage pipeline to score_coverage 0.3.1 - #338
Merged
Merged
Conversation
dcalavrezo-qorix
requested review from
antonkri,
arsibo,
pawelrutkaq and
rmaddikery
as code owners
September 29, 2026 11:22
dcalavrezo-qorix
requested a deployment
to
workflow-approval
September 29, 2026 11:22 — with
GitHub Actions
Waiting
License Check Results🚀 The license check job ran with the Bazel command: bazel run --lockfile_mode=error //:license-checkStatus: Click to expand output |
dcalavrezo-qorix
requested a deployment
to
workflow-approval
September 29, 2026 13:30 — with
GitHub Actions
Waiting
dcalavrezo-qorix
requested a deployment
to
workflow-approval
September 29, 2026 13:56 — with
GitHub Actions
Waiting
dcalavrezo-qorix
requested a deployment
to
workflow-approval
September 29, 2026 14:05 — with
GitHub Actions
Waiting
This was referenced Sep 30, 2026
Contributor
Author
|
@rmaddikery @antonkri could you review this one, please? It moves the coverage pipeline to the qualified |
The LLVM coverage pipeline under @score_tooling//coverage moved to its own qualified module, score_coverage (eclipse-score/coverage_tool, TCL LOW). Switch the labels one-to-one, add the module as a dev dependency and bump rules_rust to 0.68.2-score, which the module requires. Scope, config and workflow are otherwise unchanged; the report archive keeps its name for docs.yml. Local comparison, //score/... (37 tests), old pipeline vs this commit, LCOV compared record by record: files in report 99 -> 117 (18 headers added, see below) identical status 98 of 99 common files raw line coverage 85.58 % -> 84.63 % raw branch coverage 78.65 % -> 78.70 % The 18 added files are datarouter headers under include/ and the score_log_bridge_cpp_init ffi.rs, which the old pipeline dropped (headers reached through include directories); each has one row in the HTML index and its link resolves. The lower line percentage comes from those headers. The one status difference, message_passing_server.cpp lines 293-313, is the peer-closed-while- ticking path between LCOV_EXCL markers, which depends on thread timing and was hit in the second run only. Tracking: eclipse-score/score#3258 Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
Bazel guesses --instrumentation_filter from the packages of the test targets and strips only a trailing /tests; a library tested from a test/ subpackage is compiled without counters unless one of its deps is instrumented. Name the whole module, as the score_coverage manual now requires (0.3.1). Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
0.3.1 requires the explicit --instrumentation_filter this branch already sets, and warns when a report shows the pattern of a library tested from a test/ subpackage without data. Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
rmaddikery
force-pushed
the
dcalavrezo_score_coverage
branch
from
October 2, 2026 10:26
c76d831 to
0e9ff65
Compare
|
The created documentation from the pull request is available at: docu-html |
rmaddikery
approved these changes
Oct 2, 2026
This branch was successfully deployed
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.
Rollout of the qualified S-CORE coverage tool,
score_coverage0.3.1 (release notes), tracked in eclipse-score/score#3258. Linux LLVM coverage only; QNX on-target coverage is not part of this PR.What
The coverage pipeline this repository used from
@score_tooling//coveragemoved to its own module. This PR switches the labels one-to-one (defs.bzl,merger,generate_coverage_html, the death-test feature), addsscore_coverage0.3.0 as a dev dependency and bumpsrules_rustto 0.68.2-score, which the module requires. Scope (quality/coverage/BUILD), thecoverage:llvm_covconfig and the workflow are otherwise unchanged. The artifact keeps its name, sodocs.ymlis unaffected.Verification
Local,
bazel coverage --config=llvm_cov //score/... --build_tests_only(37 tests), old pipeline vs this branch, LCOV compared record by record:bazel build --nobuild --lockfile_mode=error //...Added files. Datarouter headers under
score/datarouter/include/...andscore/datarouter/src/configuration/dynamic_config/..., plusscore_log_bridge_cpp_init/ffi.rs. The old pipeline dropped headers reached through include directories (eclipse-score/coverage_tool#5, fixed in 0.2.0); they are now measured, which is why the line percentage goes down while nothing lost coverage.Status difference.
score/datarouter/src/daemon/message_passing_server.cpplines 293–313: the "peer closed while ticking" path, betweenLCOV_EXCLmarkers. It depends on thread timing and was executed in the second run only.New in the archive.
unmapped_files.txtlists in-scope files that have no coverage data at all, categorised: 1compiled-without-code, 25declaration-onlyheaders, 19no-data. Among theno-dataentries:score_log_bridge/src/lib.rs(onlymodanduselines, no executable code),main_nonadaptive.cppandlog_entry_deserialization_visitor.cpp(in scope, no test executes them), and config/type headers. Worth a look by the module owners; none of these had coverage before either.Update: bumped to 0.3.1, which requires the explicit
--instrumentation_filter=^//score[/:]this branch sets. Bazel guesses the filter from the packages of the test targets; libraries tested from atestsubpackage were otherwise compiled without counters or, on QNX, lost their counters (score/os showed 13 % instead of 80 % in the first QNX report). See the 0.3.1 release notes.