#!/bin/bash

set -e

html="$1"

outdir="out/coverage/rust"
LLVMCOVPATH="out/bin"

mkdir -p $outdir $LLVMCOVPATH
test -x $LLVMCOVPATH/cargo-llvm-cov || 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
export PATH="$LLVMCOVPATH:$PATH"
ANKI_TEST_MODE=1 $LLVMCOVPATH/cargo-llvm-cov llvm-cov nextest --workspace --locked --json --summary-only \
    --output-path $outdir/coverage-summary.json --fail-under-lines 60 \
    --color=always --failure-output=final --status-level=none

if [ "$html" = "--html" ]; then
    ANKI_TEST_MODE=1 $LLVMCOVPATH/cargo-llvm-cov llvm-cov report --html --output-dir $outdir/html
    echo "Rust coverage report: $outdir/html/index.html"
fi
