#!/usr/bin/env bash set -e html="$1" outdir="out/coverage/rust" LLVMCOVPATH="out/bin" mkdir -p $outdir $LLVMCOVPATH export CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-out/rust}" if [[ "${CI:-}" == "true" ]]; then # prebuilt binary shouldve been installed cargo_cmd="cargo" profile=ci else cargo_cmd="$LLVMCOVPATH/cargo-llvm-cov" test -x "$cargo_cmd" || cargo install cargo-llvm-cov --version 0.8.4 --locked --root out test -x "$LLVMCOVPATH/cargo-nextest" || cargo install cargo-nextest \ --version 0.9.99 --locked --no-default-features --features default-no-update --root out profile=dev fi export PATH="$LLVMCOVPATH:$PATH" ANKI_TEST_MODE=1 "$cargo_cmd" llvm-cov nextest --workspace --locked \ --cargo-profile "$profile" \ --json --summary-only \ --output-path $outdir/coverage-summary.json --fail-under-lines 64 if [ "$html" = "--html" ]; then ANKI_TEST_MODE=1 "$cargo_cmd" llvm-cov report --profile "$profile" \ --html --output-dir $outdir echo "Rust coverage report: $outdir/html/index.html" fi