#!/bin/bash
# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Calculates coverage for the specified crate only
# Usage:
# $ ./bin/crate_coverage arch [additional arguments for cargo test]
# Requirements:
# $ rustup toolchain install nightly
# $ cargo install grcov rust-covfix
set -ex
cd "${0%/*}/../"

target_dir=$(
    cargo metadata --no-deps --format-version 1 |
        jq -r ".target_directory"
)

# Delete old coverage profiles
find "$target_dir/debug" -name "*.gcda" -delete

# Run test with coverage profiling
(cd $1 && CARGO_INCREMENTAL=0 \
    RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Coverflow-checks=off \
-Zpanic_abort_tests" \
    cargo +nightly test "${@:2}")

# Calculate code coverage
grcov "$target_dir/debug" -s . \
    --ignore "/*" --ignore-not-existing \
    -t lcov --llvm --branch \
    -o /tmp/lcov.info

# Apply code coverage fixes
rust-covfix /tmp/lcov.info >lcov.info
