From d2688a197bd680580699f05e8194f9180e4832fa Mon Sep 17 00:00:00 2001 From: Kostya Date: Tue, 18 Aug 2026 06:52:47 +0000 Subject: Add XML schema validation, split build scripts by module, rename BuyMenuCommand to PlaceOrderMenuCommand Introduces XMLValidatorV1 and deserializer/adapter classes for events, ledgers, markets, users, and trading mechanisms. Replaces the monolithic build.bat/run.sh scripts with per-module tools (_util.sh, build.sh, package.sh, test.sh) that compile in dependency order. --- tools/test.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tools/test.sh (limited to 'tools/test.sh') diff --git a/tools/test.sh b/tools/test.sh new file mode 100644 index 0000000..4eaeb82 --- /dev/null +++ b/tools/test.sh @@ -0,0 +1,47 @@ +#!/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 -- cgit v1.2.3