cargo-llvm-cov vs LLVM llvm-cov
cargo-llvm-cov
github.comLLVM llvm-cov
llvm.orgSide by side
| Figure | cargo-llvm-cov | LLVM llvm-cov |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Test Coverage Tools | 8.1 (#8) | 7.5 (#17) |
| Purpose | cargo-llvm-cov is a Cargo subcommand that wraps rustc’s LLVM source-based code coverage instrumentation. | llvm-cov shows code coverage information for programs instrumented to emit profile data. |
Plans
In their own words
cargo-llvm-cov
cargo-llvm-cov is a Cargo subcommand that uses rustc’s LLVM source-based instrumentation to generate code coverage reports. It works with cargo test, cargo run, and cargo nextest through a Cargo-compatible command-line interface, and supports proc-macro UI tests. Line and region coverage are available; branch coverage is optional and requires nightly Rust. Doc-test coverage is also optional and requires nightly features. Reports can be generated as text, HTML, JSON, LCOV, Cobertura XML, or Codecov Custom Coverage format. The project provides GitHub Actions examples for uploading reports to Codecov and a GitLab CI example using Cobertura output. LCOV results can be viewed in VS Code with the Coverage Gutters extension. With compatible Clang and LLVM tools configured, the tool can include C and C++ code linked to a Rust library or binary. It supports Linux, macOS, and Windows, and is licensed under either Apache-2.0 or MIT at the user's choice. Installation requires rustc 1.87 or newer, while running it requires Cargo 1.60 or newer. Branch and doc-test coverage are unstable and have known issues, respectively.
LLVM llvm-cov
LLVM llvm-cov is a free, self-hosted developer tool for examining coverage in instrumented C, C++, Objective-C, and Objective-C++ programs. It accepts executables, object files, dynamic libraries, or archives and works with gcov-style data or Clang instrumentation-based profiling. Its commands include gcov, show, report, and export. Show provides line-level coverage and can focus on selected source files. Report summarizes measurements such as branch, function, and MC/DC statistics; documented coverage types also include instantiation and region coverage. Output can be text, HTML, JSON, or LCOV. JSON exports may contain regions, functions, branches, expansions, and summaries. A typical workflow builds an instrumented program, runs it to create profile data, then uses llvm-profdata merge before analysis. The gcov command is compatible with gcov from GCC 4.2 and may work with later versions. LLVM documents llvm-cov as part of its developer toolchain. It runs on Linux, macOS, and Windows and has no paid plans or stated usage limits.