#!/bin/sh
# run_bootA.sh -- DF-4059 + DF-4060 baseline (UNPATCHED kernel) evidence run.
# Order: non-fatal evidence first; the DF-4060 panic finale is LAST
# (the guest is expected to die at "panic: amr: slot %d busy?").
# Run from the repo root on the host.
set -e
ROOT=$(cd "$(dirname "$0")/../../.." && pwd)
cd "$ROOT"
V=./dfbsd-qemu/vm.sh

$V run_root 'cd /root/rig && kldload ./dfamr_rig.ko'
$V run_root 'cd /root/rig && ./dfamr_ctl prime && ./dfamr_ctl offs && ./dfamr_ctl magic'
$V run_root 'cd /root/rig && ./dfamr_ctl b' | tee /tmp/4059b.out
$V run_root 'cd /root/rig && ./dfamr_ctl leak 2 && dmesg > leak2.dmesg'
$V run_root 'cd /root/rig && ./dfamr_ctl leak 7 && dmesg > leak7.dmesg'
$V run_root 'cd /root/rig && ./dfamr_ctl tmo 0' | tee /tmp/4060tmo.out
$V run_root 'cd /root/rig && ./dfamr_ctl late' | tee /tmp/4060late.out
$V run_root 'cd /root/rig && dmesg > dmesg_bootA.txt && wc -l dmesg_bootA.txt'
echo "=== non-fatal evidence complete; DF-4060 panic finale next ==="
$V run_root 'cd /root/rig && ./dfamr_ctl tmo 1' | tee /tmp/4060finale.out || true
sleep 5
echo "=== guest should be dead in DDB; serial tail: ==="
tail -40 "$ROOT/dfbsd-qemu/boot.log"
