36 lines
1.4 KiB
Markdown
36 lines
1.4 KiB
Markdown
# ECP-0030: Workspace Coverage Reporting
|
|
|
|
Status: Draft
|
|
|
|
## Problem
|
|
|
|
We want high-confidence changes across the entire codebase, not only the newest crates. Today, we have unit tests in a subset of crates and no standardized, reproducible, formal coverage artifact.
|
|
|
|
## Decision
|
|
|
|
- Adopt workspace-level coverage as a first-class artifact using `cargo-llvm-cov`.
|
|
- Provide repeatable `just` commands that generate:
|
|
- LCOV (`tmp/coverage/workspace.lcov`)
|
|
- HTML report (`tmp/coverage/workspace-html/index.html`)
|
|
- A short summary (`tmp/coverage/workspace.summary.txt`)
|
|
- Prefer running coverage via `nix develop` so `ac-ffmpeg` builds consistently (FFmpeg headers/libs present).
|
|
|
|
## Details
|
|
|
|
Commands:
|
|
|
|
- `just test-workspace`
|
|
- `just cov-workspace` / `just cov-workspace-html` (when `cargo llvm-cov` is available, typically inside `nix develop`)
|
|
- `just cov-workspace-nix` / `just cov-workspace-html-nix` (self-contained, runs through `nix develop`)
|
|
- `cargo llvm-cov -p ec-core -p ec-crypto -p ec-hdhomerun -p ec-iroh -p ec-linux-iptv -p ec-moq -p ec-ts` (unit-coverage subset that doesn't require FFmpeg headers)
|
|
|
|
Coverage excludes:
|
|
|
|
- `third_party/`
|
|
- `target/`
|
|
- `tmp/`
|
|
|
|
## Consequences
|
|
|
|
- Contributors can review regressions with an objective report, not only "tests passed".
|
|
- Running coverage outside Nix may not work on macOS/Linux unless FFmpeg dev headers are installed; the Nix path is the canonical one.
|