eclipse-score / eclipse-score/reference_integration

Coverage calculation for C++ and Rust

Open
#259 6 comments 0 reactions 1 assignee Claimed by @dcalavrezo-qorix View on GitHub
bug
Dominant language
Python
Stars
5
Forks
37
Avg merge
1d 2h
Merged PRs (30d)
22

Description

Currently issues with coverage calculation are observed across different Modules. We need a common solution that can be applied and used in reference_integration.

# Problem definition

## Mutual
- we need solution that is common and can be reused by everyone
- we need justifications when coverage != 100%, we need mechanisms to justify etc.
- tooling should support platform variants, allows justifications only for specific one, etc.
- tooling should allow easy use to developers and clear information where improvements are needed
- tooling will require certification but there is no other known alternative that will fulfill all our requirements
- tool requirements initially defined in https://github.com/eclipse-score/communication/pull/549

## C++
- different frameworks have different statements definition - we need that aligned in SCORE
- `bazel coverage` is not 100% reliable
- PR with suggested changes as reference
- No other alternatives exist for our knowledge right now

## Rust
- currently only line coverage is calculated
- ferrocene toolchain supports only Linux (QNX UTs don't work)
- there was a new PR in toolchains to support coverage in QNX @PiotrKorkus to check if that works
https://github.com/eclipse-score/bazel_cpp_toolchains/pull/62
- other coverages where quoted to ferrocene. Branch coverage would be possible to get with other open-source solutions

It should be possible to use a common tool for generating coverage for both languages.

## Next steps
- Get QNX coverage working for C++
- Look into Rust coverage
- Rust and C++ report should have a combined report

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.