| cargo clean |
| rm -rf cov/rustc-semver/ |
| rm -rf cov/* |
| |
| RUSTFLAGS="-Zinstrument-coverage" \ |
| LLVM_PROFILE_FILE="$(pwd)/cov/rustc-semver%m.profraw" \ |
| cargo +nightly test |
| |
| llvm-profdata merge -sparse cov/rustc-semver*.profraw -o cov/rustc-semver.profdata |
| |
| case $1 in |
| "--json") |
| llvm-cov export \ |
| --instr-profile=cov/rustc-semver.profdata \ |
| --summary-only \ |
| --format=text \ |
| $(find target/debug/deps -executable -type f) | python3 -m json.tool > cov.json |
| ;; |
| "--html") |
| cargo install rustfilt |
| llvm-cov show \ |
| --instr-profile=cov/rustc-semver.profdata \ |
| --Xdemangler=rustfilt \ |
| --show-line-counts-or-regions \ |
| --output-dir=cov/rustc-semver \ |
| --format=html \ |
| $(find target/debug/deps -executable -type f) |
| ;; |
| *) |
| echo "Use with either --html or --json" |
| exit 1 |
| ;; |
| esac |
| |