#! /usr/bin/env bash set -e -o pipefail OUTPUT_DIR="target/grcov" log() { echo >&2 "$@" } exc() { echo '$' "$@" "$@" } main() { exc cd "$(dirname "$0")" local open="0" if [[ "$1" == "--open" ]]; then open="1" fi exc cargo llvm-cov --all-features --workspace --doctests --branch exc rm -rf target/llvm-cov-target/debug/deps/doctestbins exc mv -v target/llvm-cov-target/doctestbins target/llvm-cov-target/debug/deps/ exc rm -rf "${OUTPUT_DIR}" exc mkdir -p "${OUTPUT_DIR}" exc grcov target/llvm-cov-target/ --llvm -s . --branch \ --binary-path ./target/llvm-cov-target/debug/deps \ --ignore-not-existing --ignore '../*' --ignore "/*" \ --excl-line '^\s*#\[(derive|repr)\(' \ -t lcov,html,markdown -o "${OUTPUT_DIR}" if (( "${open}" == 1 )); then xdg-open "${PWD}/${OUTPUT_DIR}/html/index.html" fi log "" log "Generated reports in \"${PWD}/${OUTPUT_DIR}\"." log "Open \"${PWD}/${OUTPUT_DIR}/html/index.html\" to view HTML report." log "" } main "$@"