fs2port/port/tools/verify/compareRun.sh

16 lines
981 B
Bash
Executable file

#!/bin/sh
# usage: port/tools/verify/compareRun.sh NAME TICKS KEYS
# Runs the oracle and the port with the same key script, keeps both
# per-tick RAM snapshot sets as tmp/NAME.oracle.snaps and
# tmp/NAME.port.snaps, and writes the first divergence to
# tmp/NAME.diff.txt (nothing printed = every tick identical).
cd "$(dirname "$0")/../../.."
name="$1"; ticks="$2"; keys="$3"
mkdir -p tmp
FS2TRACE_SNAP_EVERY=1 port/tools/verify/oracleRun.sh "$ticks" "$keys" > "tmp/$name.oracle.txt" 2>&1
mv tmp/oracle.snaps "tmp/$name.oracle.snaps"
port/bin/fs2port --ticks "$ticks" --keys "$keys" --snap-every 1 --screenshot "tmp/$name.port.ppm" > "tmp/$name.port.txt" 2>&1
mv tmp/port.snaps "tmp/$name.port.snaps"
python3 port/tools/verify/snapDiff.py "tmp/$name.oracle.snaps" "tmp/$name.port.snaps" 1 12 > "tmp/$name.diff.txt" 2>&1
grep -v ': 0 differing' "tmp/$name.diff.txt" | head -30
grep -n 'overlay code not resident\|reached opcode\|unsupported\|failure' "tmp/$name.port.txt" | head -3