Skip to content

Migrate coverage pipeline to score_coverage 0.1.0 - #584

Merged
4og merged 1 commit into
mainfrom
dcalavrezo_score_coverage
Sep 14, 2026
Merged

4og merged 1 commit into
mainfrom
dcalavrezo_score_coverage

Conversation

@dcalavrezo-qorix

Copy link
Copy Markdown
Contributor

What

Replaces @score_tooling//coverage with score_coverage 0.1.0, the LLVM
source-based coverage pipeline that moved into its own qualified module
(https://github.com/eclipse-score/coverage_tool, released in the S-CORE Bazel
registry). Only the labels change; tools/coverage/ scope, reporter wrapper and
justification file are untouched.

Fixes #558. Supersedes the extra_deps approach of #577: the scope aspect in
score_coverage lists the post-processing identity of every workspace target's
public headers, so headers vendored from an external repository behind
strip_include_prefix (//score/flatbuffers:flatbufferscpp) are reported under
their _virtual_includes/ path, each exactly once. No new attribute on the
scope target is needed.

Also bumps rules_rust 0.68.1-score -> 0.68.2-score (required by
score_coverage) and refreshes MODULE.bazel.lock.

Verification

bazel coverage --config=llvm_cov --build_tests_only -- //score/flatbuffers/...
run twice on the same tree, before (score_tooling 2.2.1, main) and after this
change, then every LCOV SF: record compared field by field (DA, BRDA, LF,
LH, BRF, BRH).

Check Result
Records present in both reports 413, all identical
Records missing after the change 0
Records new after the change 17: the 15 score/flatbuffers/_virtual_includes/flatbufferscpp/flatbuffers/*.h from #558 plus visitor/_virtual_includes/visitor/.../visit.h and visit_as_struct.h
Each new header in the HTML report exactly one row (no 0 % duplicate)
Total line coverage of the subset 466/18240 (2.55 %) -> 1344/19420 (6.92 %)
generate_coverage_html gate / archive exit 0, archive produced

The totals move only because the previously dropped headers now count; no
existing file changed its numbers.

Documentation of the tool: https://eclipse-score.github.io/coverage_tool/main/

The LLVM source-based coverage pipeline moved out of score_tooling into
its own qualified module, score_coverage (eclipse-score/coverage_tool,
released as 0.1.0 in the S-CORE Bazel registry). Point the merger,
reporter macros, death-test feature and the report workflow at the new
module.

score_coverage 0.1.0 fixes #558: headers vendored from an external
repository behind strip_include_prefix (//score/flatbuffers:flatbufferscpp)
were dropped from the report. They are now reported under their
_virtual_includes/ path, each exactly once. No extra_deps attribute is
needed; the scope aspect handles every workspace target.

Validated on //score/flatbuffers/... before (score_tooling 2.2.1) and
after this change: all 413 previously reported source records are
identical line by line (DA/BRDA/LF/LH/BRF/BRH); the after run adds the
15 flatbuffers headers plus 2 static_reflection visitor headers that
were missing, and total line coverage goes from 466/18240 to
1344/19420.

rules_rust 0.68.1-score -> 0.68.2-score follows the version required by
score_coverage; MODULE.bazel.lock refreshed accordingly.

Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
@github-project-automation github-project-automation Bot moved this to In Progress in BAS - Baselibs FT Sep 11, 2026
@github-actions github-actions Bot added bazel Bazel and Starlark build files ci CI related changes labels Sep 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Documentation preview for this pull request is available at:
pr-584: https://eclipse-score.github.io/baselibs/pr-584/

@paulquiring

Copy link
Copy Markdown
Contributor

This time I checked the coverage artifact produced by the pipeline downloadable via https://github.com/eclipse-score/baselibs/actions/runs/34610832452/artifacts/10268069488.

'external/openssl+/*' is now showing too, I missed that previously.

A patch proposal: score_coverage_vendored_files.patch
A file under external/ is normally not a workspace's concern - unless the a target itself declares it in srcs/hdrs.
The patch considers only those files.

etas-contrib-automation Bot pushed a commit to etas-contrib/score_inc_someip_gateway that referenced this pull request Sep 14, 2026
The source code coverage tooling got its own repo. Move to that to
follow its updates.

Applied similar changes as
eclipse-score/baselibs#584
@4og

4og commented Sep 14, 2026 •

Copy link
Copy Markdown
Member

Apart from external/openssl+/*being included in the report, all files paths starting with bazel-out and external are not clickable as the corresponding HTMLs are missing

@4og 4og left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good apart from the eclipse-score/coverage_tool#5 that needs to be fixed.

@github-project-automation github-project-automation Bot moved this from In Progress to On Hold in BAS - Baselibs FT Sep 14, 2026
@4og
4og added this pull request to the merge queue Sep 14, 2026
Merged via the queue into main with commit b05936f Sep 14, 2026
33 of 34 checks passed
@4og
4og deleted the dcalavrezo_score_coverage branch September 14, 2026 15:33
@github-project-automation github-project-automation Bot moved this from On Hold to Done in BAS - Baselibs FT Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bazel Bazel and Starlark build files ci CI related changes

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

score's llvm_cov integration filters @flatbuffers//:include/flatbuffers/*.h in the report out

3 participants