#!/usr/bin/env bash # Regenerates every file in ../output/ from a real run against $JDK25_HOME. # Usage: JDK25_HOME=/path/to/jdk-25 ./run-all.sh set -euo pipefail if [ -z "${JDK25_HOME:-}" ]; then echo "Set JDK25_HOME to a JDK 25 install first." >&2 exit 1 fi cd "$(dirname "$0")/.." OUT="output" mkdir -p "$OUT" "$JDK25_HOME/bin/mvn" -q -f pom.xml package 2>/dev/null || true CP="target/classes" if [ ! -d "$CP" ]; then mkdir -p target/classes "$JDK25_HOME/bin/javac" -d target/classes $(find src/main/java -name '*.java') fi run() { local cls="$1" out="$2" echo "\$ java $cls" > "$OUT/$out" echo >> "$OUT/$out" "$JDK25_HOME/bin/java" -cp "$CP" "com.ankurm.arithmetic.$cls" >> "$OUT/$out" 2>&1 } run OverflowWrapDemo 01-overflow-wrap.txt run ExactArithmeticDemo 02-exact-arithmetic.txt run WideningAndBigIntegerDemo 03-widening-and-biginteger.txt run OverflowBitTrickDemo 04-overflow-bit-trick.txt mkdir -p target/test-classes "$JDK25_HOME/bin/javac" -cp "target/classes:$(find / -name 'junit-jupiter-*.jar' 2>/dev/null | tr '\n' ':')" \ -d target/test-classes $(find src/test/java -name '*.java') 2>/dev/null || true "$JDK25_HOME/bin/mvn" -q -f pom.xml test > "$OUT/05-correctness-tests.txt" 2>&1 || true cp target/surefire-reports/com.ankurm.arithmetic.ArithmeticClaimsTest.txt "$OUT/05-correctness-tests.txt" 2>/dev/null || true echo "Done. See $OUT/"