summaryrefslogtreecommitdiffstats
path: root/build/hv-collector-coverage/check-coverage.sh
diff options
context:
space:
mode:
authorPiotr Jaszczyk <piotr.jaszczyk@nokia.com>2018-11-28 15:46:50 +0100
committerPiotr Jaszczyk <piotr.jaszczyk@nokia.com>2018-11-29 14:41:42 +0100
commitdde383a2aa75f94c26d7949665b79cc95486a223 (patch)
tree75f3e8f564067afd0e67dbe6254183e45ca26944 /build/hv-collector-coverage/check-coverage.sh
parent77f896523f2065b1da1be21545155a29edea5122 (diff)
Custom detekt rule for logger usage check
Check if logger invocations don't use unoptimal invocations, eg. concatenation `debug("a=" + a)` instead of lambda use `debug {"a=" + a}` Unfortunately to avoid defining dependencies in many places and having circural dependencies it was necessarry to reorganize the maven module structure. The goal was to have `sources` module with production code and `build` module with build-time tooling (detekt rules among them). Issue-ID: DCAEGEN2-1002 Change-Id: I36e677b98972aaae6905d722597cbce5e863d201 Signed-off-by: Piotr Jaszczyk <piotr.jaszczyk@nokia.com>
Diffstat (limited to 'build/hv-collector-coverage/check-coverage.sh')
-rwxr-xr-xbuild/hv-collector-coverage/check-coverage.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/build/hv-collector-coverage/check-coverage.sh b/build/hv-collector-coverage/check-coverage.sh
new file mode 100755
index 00000000..956891ac
--- /dev/null
+++ b/build/hv-collector-coverage/check-coverage.sh
@@ -0,0 +1,30 @@
+#!/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
+