The tracking issue for this feature is: #42524.
This feature allows the generation of code coverage reports.
-Zprofile compiler flag in order to enable gcov profiling.
cargo new testgcov --bin cd testgcov export RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort" export CARGO_INCREMENTAL=0 cargo build cargo run
Once you've built and run your program, files with the
gcno (after build) and
gcda (after execution) extensions will be created.
You can parse them with llvm-cov gcov or grcov.
Please note that
RUSTFLAGS by default applies to everything that cargo builds and runs during a build!
--target flag is explicitly passed to cargo, the
RUSTFLAGS no longer apply to build scripts and procedural macros.
For more fine-grained control consider passing a
RUSTC_WRAPPER program to cargo that only adds the profiling flags to
rustc for the specific crates you want to profile.