coverage: on-target (QNX) coverage support in the shared coverage module
维护者通常 1 天内回复
@dcalavrezo-qorix 已经在做这个了。
开始于 2026年8月17日。
评估
这个 Issue 还没有评估数据。
描述
Context
PR #394 centralizes the Linux/LLVM coverage pipeline (unified C++ + Rust, exact 0% baselines, justification gating) into @score_tooling//coverage. On-target (QNX) coverage was deliberately left out of that PR and is tracked here instead.
Current state across S-CORE (as of 2026-08-17):
- No repository enforces QNX coverage in CI. QNX tests run everywhere (QNX images built by the IFS toolchain, executed under qemu-system on the runners), but coverage is measured on Linux only.
communicationis the only repo with a QNX coverage capability at all: manualbazel coverage --config=qnx— C++ only, gcov-based (QCC/GCC →.gcda→ Bazel default LCOV pipeline →lcov_to_html.py/gcovr rendering). It already reuses three shared components (thecoverage_scopeallowlist,justify.py --platform qnx, andeffective_coverage.py, which auto-detects gcovr vs llvm-cov HTML). Untested-file baselines exist there via hand-maintainedbaseline_coverage_testhelper targets.- Rust coverage on QNX exists nowhere: rustc is an LLVM compiler and cannot emit gcov data, so it can never ride the gcov path; and until
ferrocene_toolchain_builder1.3.1 the LLVM profile runtime did not work on QNX at all (missing profile bitmap symbols;madvise(MADV_DONTNEED)crash — both fixed by the 1.3.1 compiler-rt patches). It has never been validated end-to-end.
Goal
Make on-target coverage a first-class, CI-enforceable capability of the shared module, available to all modules (persistency and lifecycle already run QNX tests under QEMU — only the collection/reporting flow is missing).
Track 1 — C++ via gcov (available today)
Move the gcov flow from communication into @score_tooling//coverage as an optional path:
-
lcov_to_html.py(LCOV → gcovr JSON v0.14 → gcovr HTML; adds agcovrpip dependency) - the
coverage:qnx_x86_64bazelrc block (QCC toolchain, Bazel default lcov_merger/report generator, LLVM options reset) - the baseline-collection logic from
generate_coverage_html.sh(merging Bazel'sbaseline_coverage.dat+baseline_coverage_test_cc_coverage.datrecords) and documentation of the helper-target pattern - a QNX case in the integration test workspace, then a consumer (e.g. communication) migrating its QNX flow to the shared module
Track 2 — Rust (and eventually C++) via the LLVM pipeline
- End-to-end validation: a Rust QNX test built with
-Cinstrument-coverage(builder >= 1.3.1 toolchain), executed under QEMU,.profrawcopied back through the same channel that today carries.gcda, processed by the host llvm-cov pipeline. The transport is proven for gcov; only the profraw leg is unverified. - If validated: stop resetting the Rust instrumentation flags in the QNX coverage config and report Rust-on-QNX through the standard pipeline (exact baselines, branch coverage, justification gate).
- C++ on QNX via covmap remains blocked until an LLVM-based QNX C++ toolchain exists in S-CORE (QCC is GCC-based); revisit if/when one appears.
Non-goals
- Real-hardware (HIL) collection — same model (copy counter files back, process on host) but out of scope until QEMU-based collection is established.
Refs: #394 and its review discussion on lcov_to_html.py scope.
- 主要语言
- Rust
- 星标
- 9
- 派生
- 39
- 平均合并
- 1 天 22 小时
- 30 天内合并 PR
- 38
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
eclipse-score/tooling 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
eclipse-score/tooling#499 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 48/100
eclipse-score/tooling#458 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
eclipse-score/tooling#452 · 1 条评论 ·
维护者通常 1 天内回复
-
coverage: integration mode — scope external module roots (reference_integration)可能重新可做 @dcalavrezo-qorix 于 62 天前认领,目前没有进行中的 PR。 未关闭
eclipse-score/tooling#445 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Migration path rst to trlc可能重新可做 @antonkri 于 64 天前认领,目前没有进行中的 PR。 未关闭
eclipse-score/tooling#441 · 已指派 1 人 ·
维护者通常 1 天内回复
查看 eclipse-score/tooling 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 79/100
维护者通常 1 天内回复
-
type: enhancement
难度 2/5 1-3 小时 新手友好度 62/100
franciscoBSalgueiro/en-croissant#1061 ·
维护者通常 3 天内回复
-
chore good first issue macros spire
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
groupmod -U: members change in /etc/group but not in /etc/gshadow可能已有人在做 @jayhemnani9910 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 79/100
维护者通常 1 天内回复