mirror of
https://github.com/uutils/coreutils
synced 2024-12-19 17:43:52 +00:00
1.2 KiB
1.2 KiB
Code Coverage Report Generation
Code coverage report can be generated using grcov.
Using Nightly Rust
To generate gcov-based coverage report
$ export CARGO_INCREMENTAL=0
$ export RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort"
$ export RUSTDOCFLAGS="-Cpanic=abort"
$ cargo build <options...> # e.g., --features feat_os_unix
$ cargo test <options...> # e.g., --features feat_os_unix test_pathchk
$ grcov . -s . --binary-path ./target/debug/ -t html --branch --ignore-not-existing --ignore build.rs --excl-br-line "^\s*((debug_)?assert(_eq|_ne)?\#\[derive\()" -o ./target/debug/coverage/
$ # open target/debug/coverage/index.html in browser
if changes are not reflected in the report then run cargo clean
and run the above commands.
Using Stable Rust
If you are using stable version of Rust that doesn't enable code coverage instrumentation by default
then add -Z-Zinstrument-coverage
flag to RUSTFLAGS
env variable specified above.