DF-5696 / guest_run.sh
#!/bin/sh # guest_run.sh — full rig matrix ON THE GUEST (DragonFly, 12 GiB RAM). cd /tmp/qr fails=0 echo "### uname" uname -a echo "### selftest" ./qsort_rig selftest; echo "rc=$?" echo "### fuzz (differential vs libc: verbatim + f6 + f67 + kqsort_r)" ./qsort_rig fuzz 8000 0xDF5696; rc=$?; echo "rc=$rc"; [ $rc = 0 ] || fails=1 echo "### fuzz_lie (inconsistent comparators, memory-safety only)" ./qsort_rig fuzz_lie 2000 0xDF5696; rc=$?; echo "rc=$rc"; [ $rc = 0 ] || fails=1 echo "### truncate (2.16e9-byte partition -> int truncation + unsigned promotion -> OOB partition state; A/B)" timeout 900 ./qsort_rig truncate; rc=$?; echo "rc=$rc (expect 9 = OOB partition state confirmed)"; [ $rc = 9 ] || fails=1 echo "### med3_oob (>=16GiB VA: d=(n/8)*es int overflow -> OOB comparator args)" timeout 300 ./qsort_rig med3_oob; rc=$?; echo "rc=$rc (expect 3 = OOB args confirmed)"; [ $rc = 3 ] || fails=1 echo "### med3_oob_fixed (patched: no OOB args in first 1000 cmps)" timeout 300 ./qsort_rig med3_oob_fixed; rc=$?; echo "rc=$rc (expect 0)"; [ $rc = 0 ] || fails=1 echo "### es0_contrast" timeout 60 ./qsort_rig es0_contrast >/dev/null; rc=$?; echo "rc=$rc (expect 0)"; [ $rc = 0 ] || fails=1 echo "### es0_hang (verbatim es=0 n=64: non-termination)" timeout 300 ./qsort_rig es0_hang; rc=$?; echo "rc=$rc (expect 7)"; [ $rc = 7 ] || fails=1 echo "### es0_segv (verbatim es=0 n=7: 8-byte access at zero-length array base)" timeout 60 ./qsort_rig es0_segv; rc=$?; echo "rc=$rc (expect 0 = SIGSEGV confirmed)"; [ $rc = 0 ] || fails=1 echo "### es0_segv_fixed (guarded f67: clean return)" timeout 60 ./qsort_rig es0_segv_fixed; rc=$?; echo "rc=$rc (expect 0)"; [ $rc = 0 ] || fails=1 echo "OVERALL: $([ $fails = 0 ] && echo ALL_EXPECTATIONS_MET || echo FAILURES_PRESENT)" exit $fails |