#!/bin/bash mkdir -p target/coverage/prof rm target/coverage/prof/*.profraw export RUSTC=./rustc_bs.sh export RUSTFLAGS="-Zinstrument-coverage -Copt-level=0 -Clink-dead-code" export LLVM_PROFILE_FILE="target/coverage/prof/opentally-%p-%m.profraw" export CARGO_TARGET_DIR=target/coverage cargo test llvm-profdata merge -sparse target/coverage/prof/*.profraw -o target/coverage/opentally.profdata for file in $(cargo test --no-run --message-format=json 2>/dev/null | jq -r "select(.profile.test == true) | .filenames[]"); do echo -n --object '"'$file'" '; done > target/coverage/objects # Need "eval" to correctly parse arguments eval llvm-cov show target/coverage/debug/opentally -instr-profile=target/coverage/opentally.profdata -Xdemangler="$HOME/.cargo/bin/rustfilt" \ $(cat target/coverage/objects) \ -ignore-filename-regex="$HOME/." \ -ignore-filename-regex=rustc \ -ignore-filename-regex=numbers/rational_num.rs \ -ignore-filename-regex=stv/gregory/prettytable_html.rs \ -ignore-filename-regex=stv/wasm.rs \ -ignore-filename-regex=tests \ -format=html --show-instantiations=false --output-dir=target/coverage/html