DF-5361 / run_matrix.sh
#!/bin/sh # run_matrix.sh -- baseline + per-fix A/B matrix for the verbatim pccard rig. # # Six rig variants are built from the SAME pristine extraction (sha256-gated # by extract.sh): # baseline : unmodified production parser # f2319/f2320/f5361/f5362/f5363 : the single fix.diff applied to a COPY of # the extracted verbatim file (never /usr/src) # then every scenario runs under every variant. One fix must flip exactly its # own scenario(s) and leave everything else (incl. negatives) untouched. set -eu cd "$(dirname "$0")" OUT=matrix.log : > "$OUT" log() { printf '%s\n' "$*" | tee -a "$OUT"; } build_variant() { # name fixdiff|none _name=$1; _fix=$2 rm -rf "var.$_name" mkdir -p "var.$_name/sys/bus/pccard" sh extract.sh "var.$_name" >> "$OUT" 2>&1 cp "var.$_name/pccard_cis_core.inc" "var.$_name/core.orig" if [ "$_fix" != none ]; then cp "var.$_name/pccard_cis_core.inc" \ "var.$_name/sys/bus/pccard/pccard_cis.c" (cd "var.$_name" && patch -p1 --forward < "../$_fix") >> "$OUT" 2>&1 cp "var.$_name/sys/bus/pccard/pccard_cis.c" \ "var.$_name/pccard_cis_core.inc" diff -u "var.$_name/core.orig" "var.$_name/pccard_cis_core.inc" \ > "var.$_name/applied_fix.diff" || true log "VARIANT $_name: fix applied ($(grep -c '^+' "var.$_name/applied_fix.diff") added lines)" fi cp rig_shims.h rig_main.c "var.$_name/" (cd "var.$_name" && cc -O2 -Wall -o rig rig_main.c) >> "$OUT" 2>&1 log "VARIANT $_name: build OK" } run_variant() { # name _name=$1 for _s in nullderef_a nullderef_b wildlink_long wildlink_mfc mfcleak \ livelock leakloop checksum checksum_ok benign; do log "===== variant=$_name scenario=$_s =====" "./var.$_name/rig" "$_s" >> "$OUT" 2>&1 || true done log "===== variant=$_name scenario=leakloop cap=100000 =====" RIG_CAP=100000 "./var.$_name/rig" leakloop >> "$OUT" 2>&1 || true log "===== variant=$_name scenario=livelock_alarm =====" "./var.$_name/rig" livelock_alarm >> "$OUT" 2>&1 || true } log "######## pccard verbatim-rig A/B matrix ########" log "date: $(date)" log "uname: $(uname -a)" build_variant baseline none build_variant f2319 fix_DF-2319.diff build_variant f2320 fix_DF-2320.diff build_variant f5361 fix_DF-5361.diff build_variant f5362 fix_DF-5362.diff build_variant f5363 fix_DF-5363.diff run_variant baseline run_variant f2319 run_variant f2320 run_variant f5361 run_variant f5362 run_variant f5363 log "######## matrix complete ########" echo "DONE: $OUT" |