#!/usr/bin/env bash
set -euo pipefail
root="$(cd "$(dirname "$0")/.." && pwd)"
cd "$root"
cpbase="artifacts/native-baseline/android-json-0.0.20131108.vaadin1.jar:artifacts/native-baseline/framework.jar:artifacts/native-baseline/dalvik-stub.jar"
mkdir -p artifacts/region-shadow-tests/classes artifacts/region-shadow-baseline
if [[ ! -f artifacts/region-shadow-baseline/native/src/com/android/commands/monkey/ape/jev/JevRuntime.java ]]; then
  git archive c161e65 native | tar -x -C artifacts/region-shadow-baseline
fi
ant -f artifacts/region-shadow-baseline/native/build.xml -Dframework.loc="$root/artifacts/native-baseline/framework.jar" -Ddalvik_stub.loc="$root/artifacts/native-baseline/dalvik-stub.jar" compile > artifacts/region-shadow-tests/baseline-build.log
for flavor in baseline shadow; do
  if [[ "$flavor" == baseline ]]; then jar=artifacts/region-shadow-baseline/native/ape-java.jar; else jar=native/ape-java.jar; fi
  mkdir -p "artifacts/region-shadow-tests/$flavor"
  javac -source 8 -target 8 -cp "$jar:$cpbase" -d "artifacts/region-shadow-tests/$flavor" tests/native/SelectionHarness.java
  java -Dape.jev.enabled=false -cp "artifacts/region-shadow-tests/$flavor:$jar:$cpbase" com.android.commands.monkey.ape.agent.SelectionHarness "$flavor" > "artifacts/region-shadow-tests/$flavor-selection.log"
done
python - <<'PY'
from pathlib import Path
p=Path('artifacts/region-shadow-tests')
a=[l for l in (p/'baseline-selection.log').read_text().splitlines() if l.startswith('TRACE ')]
b=[l for l in (p/'shadow-selection.log').read_text().splitlines() if l.startswith('TRACE ')]
assert a==b and len(a)==9,(a,b)
print('PASS stable c161e65 vs Region branch: 9 native constructor/RNG/selection traces identical')
PY
javac -source 8 -target 8 -cp "native/ape-java.jar:$cpbase" -d artifacts/region-shadow-tests/classes tests/runtime/SemanticSyncBarrierTest.java tests/region_shadow/JevFlowShadowTest.java
# Each invocation requires a fresh result directory; never clears another run.
run_dir="$(mktemp -d "$root/artifacts/region-shadow-tests/local-XXXXXXXX")"
java -cp "artifacts/region-shadow-tests/classes:native/ape-java.jar:$cpbase" com.android.commands.monkey.ape.jev.JevFlowShadowTest "$run_dir"
printf 'LOCAL_NATIVE_RESULT %s\n' "$run_dir"
