The coverage workflow uses Tarpaulin's default Linux tracing backend with opt-level = 3 in the test profile. Codecov can therefore report source lines as uncovered even when the existing tests execute them.
PR #480 shows the problem: the report marks parts of the lazy matrix products and estimator fits as uncovered, although the tests call those paths. A local run with LLVM instrumentation covers those lines with the same optimized test profile.
Switch the coverage job to cargo tarpaulin --engine llvm and install llvm-tools-preview with the nightly toolchain. Keep unit tests, integration tests, doctests, the LCOV output, and the existing 44% threshold.
Related coverage setup: #399 and #400.
The coverage workflow uses Tarpaulin's default Linux tracing backend with
opt-level = 3in the test profile. Codecov can therefore report source lines as uncovered even when the existing tests execute them.PR #480 shows the problem: the report marks parts of the lazy matrix products and estimator fits as uncovered, although the tests call those paths. A local run with LLVM instrumentation covers those lines with the same optimized test profile.
Switch the coverage job to
cargo tarpaulin --engine llvmand installllvm-tools-previewwith the nightly toolchain. Keep unit tests, integration tests, doctests, the LCOV output, and the existing 44% threshold.Related coverage setup: #399 and #400.