blob: 956891ac1b491907fcb87aa5ed01e80c9001ff4d [file] [log] [blame]
#!/usr/bin/env bash
set -euo pipefail
JACOCO_REPORT="$1"
MIN_COVERAGE_PERCENT="$2"
LOG_FILE=target/check-coverage.log
function coverage_from_report() {
local xpath_expr="string(/report/counter[@type='INSTRUCTION']/@$1)"
xpath -q -e "$xpath_expr" "$JACOCO_REPORT" 2>> ${LOG_FILE}
}
missed=$(coverage_from_report missed)
covered=$(coverage_from_report covered)
total=$(($missed + $covered))
coverage=$((100 * $covered / $total))
if [[ $(wc -c < ${LOG_FILE}) > 0 ]]; then
echo "Warnings from xpath evaluation:"
cat ${LOG_FILE}
echo
fi
echo "Coverage: $coverage% (covered/total: $covered/$total)"
if [[ ${coverage} -lt ${MIN_COVERAGE_PERCENT} ]]; then
echo "Coverage is too low. Minimum coverage: $MIN_COVERAGE_PERCENT%"
exit 1
fi