Skip to content

Migrate coverage pipeline to score_coverage 0.3.1 - #450

Merged
PandaeDo merged 1 commit into
mainfrom
dcalavrezo_score_coverage
Sep 30, 2026
Merged

PandaeDo merged 1 commit into
mainfrom
dcalavrezo_score_coverage

Conversation

@dcalavrezo-qorix

Copy link
Copy Markdown
Contributor

Rollout of the qualified S-CORE coverage tool, score_coverage 0.3.1 (release notes), tracked in eclipse-score/score#3258. Linux LLVM coverage only.

What

The coverage pipeline this repository used from @score_tooling//coverage moved to its own module. This PR switches the labels one-to-one (defs.bzl, merger, generate_coverage_html in both workflows, the death-test feature), adds score_coverage 0.3.1 as a dev dependency and sets --instrumentation_filter=^//score[/:] in the llvm_cov config, as the 0.3.1 manual requires: Bazel's guessed filter covers only the packages of the test targets, and a library tested from a test subpackage without an instrumented dependency would otherwise be compiled without counters. rules_rust is already at 0.68.2-score. Scope, justification file and workflows are otherwise unchanged; the README example now uses --testlogs-subdir score, as the workflow does.

Verification

Local, bazel coverage --config=llvm_cov //score/... --build_tests_only (5 tests), old pipeline vs this branch, LCOV compared record by record:

Check Result
Files in report 17 → 17
Covered/uncovered status identical in all 17 files
Raw line coverage 88.09 % → 88.09 %
Raw branch coverage 93.61 % → 93.61 %
HTML index 18 links, 0 dead
bazel build --nobuild --lockfile_mode=error //..., bazel mod tidy pass, no diff

score/kvs/internal/kvs_helper.cpp differs in execution counts only (a retry loop), not in status.

New in the archive. unmapped_files.txt lists in-scope files without any coverage data: three declaration-only headers and two no-data Rust files, rust_kvs/src/lib.rs and rust_kvs/src/log.rs. Those two had no data before either; they were simply not listed. Worth a look by the module owners.

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 set --instrumentation_filter=^//score[/:] as the 0.3.1
manual requires (Bazel's guessed filter covers only the packages of the
test targets). rules_rust is already at 0.68.2-score. Scope, config,
justification file and both workflows are otherwise unchanged; the
README example now names the testlogs subdirectory the workflow uses.

Local comparison, //score/... (5 tests), old pipeline vs this commit,
LCOV compared record by record:

  files in report        17 -> 17
  identical status       17 of 17
  raw line coverage      88.09 % -> 88.09 %
  raw branch coverage    93.61 % -> 93.61 %

kvs_helper.cpp differs in execution counts only (timing-dependent
retry loop), not in covered/uncovered status.

Tracking: eclipse-score/score#3258
Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run --lockfile_mode=error //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.6.0) and connecting to it...
INFO: Invocation ID: f6cc3580-1095-4a9f-9ea9-da3f7ee88b5f
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 2 packages loaded
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Analyzing: target //:license-check (3 packages loaded, 0 targets configured)
Analyzing: target //:license-check (3 packages loaded, 0 targets configured)

Analyzing: target //:license-check (70 packages loaded, 10 targets configured)

Analyzing: target //:license-check (145 packages loaded, 589 targets configured)

Analyzing: target //:license-check (149 packages loaded, 3134 targets configured)

Analyzing: target //:license-check (149 packages loaded, 3134 targets configured)

Analyzing: target //:license-check (149 packages loaded, 3134 targets configured)

Analyzing: target //:license-check (163 packages loaded, 6246 targets configured)

Analyzing: target //:license-check (169 packages loaded, 6297 targets configured)

Analyzing: target //:license-check (169 packages loaded, 6297 targets configured)

Analyzing: target //:license-check (172 packages loaded, 8184 targets configured)

Analyzing: target //:license-check (172 packages loaded, 8184 targets configured)

Analyzing: target //:license-check (172 packages loaded, 8184 targets configured)

Analyzing: target //:license-check (175 packages loaded, 11403 targets configured)

Analyzing: target //:license-check (176 packages loaded, 11411 targets configured)

Analyzing: target //:license-check (176 packages loaded, 11411 targets configured)

Analyzing: target //:license-check (176 packages loaded, 11411 targets configured)

INFO: Analyzed target //:license-check (177 packages loaded, 11537 targets configured).
INFO: From Generating Dash formatted dependency file ...:
INFO: Successfully converted 66 packages from Cargo.lock to bazel-out/k8-fastbuild/bin/formatted.txt
[14 / 17] JavaToolchainCompileClasses external/rules_java+/toolchains/platformclasspath_classes; 0s disk-cache, processwrapper-sandbox
[16 / 17] [Sched] Building license.check.license_check.jar ()
INFO: Found 1 target...
Target //:license.check.license_check up-to-date:
  bazel-bin/license.check.license_check
  bazel-bin/license.check.license_check.jar
INFO: Elapsed time: 43.271s, Critical Path: 2.23s
INFO: 17 processes: 12 internal, 4 processwrapper-sandbox, 1 worker.
INFO: Build completed successfully, 17 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt <args omitted>
usage: org.eclipse.dash.licenses.cli.Main [-batch <int>] [-cd <url>]
       [-confidence <int>] [-ef <url>] [-excludeSources <sources>] [-help] [-lic
       <url>] [-project <shortname>] [-repo <url>] [-review] [-summary <file>]
       [-timeout <seconds>] [-token <token>]

@vinodreddy-g

Copy link
Copy Markdown
Contributor

LGTM

@PandaeDo
PandaeDo added this pull request to the merge queue Sep 30, 2026
Merged via the queue into main with commit 02ff5fb Sep 30, 2026
24 checks passed
@PandaeDo
PandaeDo deleted the dcalavrezo_score_coverage branch September 30, 2026 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants