#!/bin/bash

set -euxo pipefail

[ -d cov-target/coverage ] && rm -r cov-target/coverage
[ -f lcov.info ] && rm lcov.info
find cov-target/debug/deps -type f -name keyset_rs\* -exec rm {} \;

export RUSTFLAGS="-Cinstrument-coverage"
export LLVM_PROFILE_FILE="cov-target/coverage/keyset_rs-%p-%m.profraw"
export CARGO_INCREMENTAL=0

cargo test --lib --target-dir=cov-target

grcov . \
    --source-dir .  \
    --binary-path ./cov-target/debug/ \
    --output-type lcov \
    --branch \
    --llvm \
    --ignore-not-existing \
    --output-path ./lcov.info \
    --ignore '/*' \
    --excl-line '(^\s*#\[derive\([\w, ]*\)\]|unreachable!\(\))'

genhtml -o ./coverage/ --show-details --highlight ./lcov.info

echo '*' > cov-target/.gitignore
echo '*' > coverage/.gitignore
