#!/bin/sh
# run_scenario.sh <scenario> [up_timeout]
# Boots the guest once with the crafted RSDP->RSDT->MADT blob for <scenario>
# and captures the serial console. Assumes /tmp/madt_<scenario>.bin exists.
set -e
SCEN="$1"; TMO="${2:-150}"
cd "$(dirname "$0")/../../.."   # repo root

dfbsd-qemu/vm.sh run_root \
  'grep -q hint.acpi.0.rsdp /boot/loader.conf || printf "hint.acpi.0.rsdp=0x40000000\nboot_verbose=YES\n" >> /boot/loader.conf; sync' \
  || true
dfbsd-qemu/vm.sh down || true
QEMU_EXTRA="-device loader,file=/tmp/madt_${SCEN}.bin,addr=0x40000000,force-raw=on" \
    dfbsd-qemu/vm.sh up "$TMO" || true
sleep 2
dfbsd-qemu/vm.sh log > "findings/poc/DF-5502/run_${SCEN}.log" || true
dfbsd-qemu/vm.sh down >/dev/null 2>&1 || true
echo "=== last console lines for ${SCEN}: ==="
tail -25 "findings/poc/DF-5502/run_${SCEN}.log"
