Files
RedBear-OS/local/scripts/test-network-qemu.sh
T
vasilito ce0ac10b6d chore: sync all pending changes — kirigami platform headers, cookbook fix, docs, patches
Kirigami: remove stub .cpp, add Qt platform integration headers for
QML gate. Matches KDE src/pattern for direct header-only builds.

Cookbook: add --no-backup-if-mismatch to patch invocation (fetch.rs).

Kernel: consolidate patch chain, add debug-scheme-serial-fix.

Docs: archive old audit reports, add CHANGELOG and hardware validation
matrix. Update AGENTS.md with Linux reference source policy.

Scripts: add test-network-qemu.sh, test-storage-qemu.sh.

.gitignore: add local/reference/ exclusion.
2026-05-04 11:57:48 +01:00

34 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# test-network-qemu.sh — bounded network driver validation in QEMU
# Phase 5.1 of CHANGELOG-DRIVER-IMPROVEMENT-PLAN.md
set -euo pipefail
IMAGE="${1:-build/x86_64/redbear-mini/harddrive.img}"
QEMU="${QEMU:-qemu-system-x86_64}"
OVMF_CODE="${OVMF_CODE:-/usr/share/edk2/x64/OVMF_CODE.4m.fd}"
TIMEOUT="${TIMEOUT:-90}"
SERIAL_LOG="/tmp/rbos-net-test-$$.log"
[ -f "$IMAGE" ] || { echo "FAIL: image not found: $IMAGE"; exit 1; }
cp /usr/share/edk2/x64/OVMF_VARS.4m.fd /tmp/fw_vars_net.bin 2>/dev/null
echo "=== Network Driver Validation ==="
timeout "$TIMEOUT" "$QEMU" -M q35 -m 2G -smp 2 \
-drive file="$IMAGE",format=raw \
-drive if=pflash,format=raw,readonly=on,file="$OVMF_CODE" \
-drive if=pflash,format=raw,file=/tmp/fw_vars_net.bin \
-serial file:"$SERIAL_LOG" -display none -no-reboot \
-netdev user,id=net0 -device virtio-net-pci,netdev=net0 \
-netdev user,id=net1 -device e1000,netdev=net1 \
-d guest_errors 2>/dev/null &
QEMU_PID=$!
sleep $((TIMEOUT - 10))
PASS=0
grep -q 'virtio-net:.*MAC' "$SERIAL_LOG" && echo "PASS: virtio-net started" && PASS=$((PASS+1)) || echo "FAIL: virtio-net not started"
grep -q 'DHCP' "$SERIAL_LOG" && echo "PASS: DHCP client started" && PASS=$((PASS+1)) || echo "FAIL: DHCP not started"
kill $QEMU_PID 2>/dev/null; wait $QEMU_PID 2>/dev/null
echo "=== Results: $PASS/2 checks passed ==="
rm -f /tmp/fw_vars_net.bin "$SERIAL_LOG"
[ $PASS -ge 2 ] && exit 0 || exit 1