#!/bin/sh # Runs Podlite's API/JSON/progress/HTTPS code on the desktop JVM against mock_abs.py. set -e cd "$(dirname "$0")/.." OUT=build/test JSON_JAR=${JSON_JAR:-/usr/share/java/com.android.json.jar} # any org.json works (e.g. org.json:json from Maven) BC_SRC=${BC_SRC:-$HOME/android-toolchain/bcsrc} rm -rf "$OUT" && mkdir -p "$OUT" S=src/com/miniabs javac -nowarn -encoding UTF-8 -cp "$JSON_JAR" -sourcepath "$BC_SRC" -d "$OUT" $(find test/shim -name '*.java') \ $S/Json.java $S/Prefs.java $S/Episode.java $S/Util.java $S/Api.java $S/App.java \ $S/Trust.java $S/NetConnection.java $S/net/Http.java $S/net/CertVerifier.java $S/net/AssetRoots.java \ $S/net/DiagLog.java $S/net/Threads.java $S/StreamProxy.java \ test/com/miniabs/ApiTest.java test/com/miniabs/TrustTest.java CP="$OUT:$JSON_JAR" PIDS="" cleanup() { [ -n "$PIDS" ] && kill $PIDS 2>/dev/null || true; } trap cleanup EXIT port() { echo $((20000 + $(od -An -N2 -tu2 /dev/urandom | tr -d ' ') % 20000)); } for mode in current legacy; do P=$(port) python3 test/mock_abs.py $P $mode & PIDS="$PIDS $!" sleep 1 echo "=== $mode server (http)" java -cp "$CP" com.miniabs.ApiTest $P $mode done echo "=== https" test/make_pki.sh build/pki > /dev/null ARGS="build/pki" for chain in good wronghost forged expired self; do P=$(port) python3 test/mock_abs.py $P current build/pki/$chain.chain & PIDS="$PIDS $!" ARGS="$ARGS $P" done sleep 1 java -cp "$CP" com.miniabs.TrustTest $ARGS