From dde383a2aa75f94c26d7949665b79cc95486a223 Mon Sep 17 00:00:00 2001 From: Piotr Jaszczyk Date: Wed, 28 Nov 2018 15:46:50 +0100 Subject: 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 --- build/hv-collector-coverage/check-coverage.sh | 30 ++++++ build/hv-collector-coverage/pom.xml | 147 ++++++++++++++++++++++++++ 2 files changed, 177 insertions(+) create mode 100755 build/hv-collector-coverage/check-coverage.sh create mode 100644 build/hv-collector-coverage/pom.xml (limited to 'build/hv-collector-coverage') 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 + diff --git a/build/hv-collector-coverage/pom.xml b/build/hv-collector-coverage/pom.xml new file mode 100644 index 00000000..9b3f257a --- /dev/null +++ b/build/hv-collector-coverage/pom.xml @@ -0,0 +1,147 @@ + + + + 4.0.0 + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + org.onap.dcaegen2.collectors.hv-ves + hv-collector-build + 1.1.0-SNAPSHOT + .. + + + hv-collector-coverage + VES HighVolume Collector :: Code coverage + pom + + + false + false + + + + + + org.jacoco + jacoco-maven-plugin + + + jacoco-aggregate-report + verify + + report-aggregate + + + + + org/onap/ves/* + + + **/jacoco-ut.exec + **/jacoco-it.exec + + + + + + + org.codehaus.mojo + exec-maven-plugin + + + check-coverage + verify + + exec + + + + + ${skipTests} + ${project.basedir}/check-coverage.sh + ${project.basedir} + + target/site/jacoco-aggregate/jacoco.xml + ${jacoco.minimum.coverage} + + + + + + + + + ${project.parent.groupId} + hv-collector-core + ${project.parent.version} + + + ${project.parent.groupId} + hv-collector-ct + ${project.parent.version} + + + ${project.parent.groupId} + hv-collector-dcae-app-simulator + ${project.parent.version} + + + ${project.parent.groupId} + hv-collector-domain + ${project.parent.version} + + + ${project.parent.groupId} + hv-collector-health-check + ${project.parent.version} + + + ${project.parent.groupId} + hv-collector-main + ${project.parent.version} + + + ${project.parent.groupId} + hv-collector-utils + ${project.parent.version} + + + ${project.parent.groupId} + hv-collector-ves-message-generator + ${project.parent.version} + + + ${project.parent.groupId} + hv-collector-xnf-simulator + ${project.parent.version} + + + + \ No newline at end of file -- cgit 1.2.3-korg