#!/bin/bash set -e cd "$(dirname "$0")/.." . tools/_util.sh [ -d build/classes ] || { echo "No build/classes - run tools/build.sh first" exit 1 } JUNIT_JAR=$(ls lib/junit/junit-platform-console-standalone-*.jar 2>/dev/null | head -n 1) [ -n "$JUNIT_JAR" ] || { echo "JUnit standalone jar missing from lib/junit/" exit 1 } PROD_CP="$(module_cp $MODULES)" echo "=== Compiling test sources ===" : >"$TMP/tests.txt" for m in $MODULES; do [ -d "$m/src/test/java" ] && find "$m/src/test/java" -name '*.java' >>"$TMP/tests.txt" done if [ ! -s "$TMP/tests.txt" ]; then echo " (no test sources)" exit 0 fi mkdir -p build/test-classes javac --release "$JAVA_RELEASE" -d build/test-classes \ -cp "$PROD_CP$SEP$JUNIT_JAR$SEP$LIBCP" "@$TMP/tests.txt" echo "=== Running tests ===" TEST_CP="$PROD_CP${SEP}build/test-classes" for j in lib/*/*.jar; do case "$j" in *junit-platform-console-standalone*) continue ;; esac TEST_CP="$TEST_CP$SEP$j" done AGENT_JAR=$(ls lib/mockito/byte-buddy-agent-*.jar 2>/dev/null | head -n 1) AGENT_ARG="" [ -n "$AGENT_JAR" ] && AGENT_ARG="-javaagent:$AGENT_JAR" java $AGENT_ARG -jar "$JUNIT_JAR" execute \ --class-path "$TEST_CP" --scan-class-path --details=summary