#!/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