summaryrefslogtreecommitdiffstats
path: root/scripts/test-disk.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/test-disk.sh')
-rwxr-xr-xscripts/test-disk.sh20
1 files changed, 10 insertions, 10 deletions
diff --git a/scripts/test-disk.sh b/scripts/test-disk.sh
index 0268fff..9ffb3c8 100755
--- a/scripts/test-disk.sh
+++ b/scripts/test-disk.sh
@@ -26,7 +26,7 @@ FRESH=0
26 26
27OVMF="${OVMF:-/usr/share/edk2/x64/OVMF.4m.fd}" 27OVMF="${OVMF:-/usr/share/edk2/x64/OVMF.4m.fd}"
28QEMU="${QEMU:-qemu-system-x86_64}" 28QEMU="${QEMU:-qemu-system-x86_64}"
29IMG="${DISK_IMG:-/tmp/disk.img}" 29IMG="${SYSTEM_IMG:-/tmp/system.img}"
30ESP_DIR="$PROJECT_DIR/esp" 30ESP_DIR="$PROJECT_DIR/esp"
31QPID=/tmp/rsdos-test-qpid 31QPID=/tmp/rsdos-test-qpid
32SOCK=/tmp/rsdos-test-qmon.sock 32SOCK=/tmp/rsdos-test-qmon.sock
@@ -69,29 +69,29 @@ wait_qemu_exit() {
69echo "==> 1/6 build kernel (debug)" 69echo "==> 1/6 build kernel (debug)"
70cargo build --package rsdos --target x86_64-unknown-uefi 70cargo build --package rsdos --target x86_64-unknown-uefi
71 71
72echo "==> 2/6 deploy to ESP + ensure disk image" 72echo "==> 2/6 ensure system image"
73mkdir -p "$ESP_DIR/EFI/BOOT"
74cp target/x86_64-unknown-uefi/debug/rsdos.efi "$ESP_DIR/EFI/BOOT/BOOTX64.EFI"
75if [ "$FRESH" -eq 1 ]; then 73if [ "$FRESH" -eq 1 ]; then
76 "$SCRIPT_DIR/mkdisk.sh" --fresh "$IMG" 74 "$SCRIPT_DIR/mksystem.sh" --force "$IMG"
77else 75else
78 "$SCRIPT_DIR/mkdisk.sh" "$IMG" 76 "$SCRIPT_DIR/mksystem.sh" "$IMG"
79fi 77fi
80 78
81echo "==> 3/6 boot QEMU (headless)" 79echo "==> 3/6 boot QEMU (headless)"
82kill "$(cat "$QPID" 2>/dev/null)" 2>/dev/null || true 80kill "$(cat "$QPID" 2>/dev/null)" 2>/dev/null || true
83sleep 1 81sleep 1
84rm -f "$SOCK" "$LOG" 82rm -f "$SOCK" "$LOG"
85"$QEMU" -bios "$OVMF" \ 83# Throwaway OVMF varstore: a stale/poisoned NvVars (e.g. left by the old
84# vvfat setup) makes the firmware skip the \EFI\BOOT fallback entirely.
85NV="/tmp/rsdos-test-ovmf-vars.fd"
86rm -f "$NV"
87cp /usr/share/edk2/x64/OVMF.4m.fd "$NV"
88"$QEMU" -bios "$NV" \
86 -drive file="$IMG",format=raw,if=none,id=disk \ 89 -drive file="$IMG",format=raw,if=none,id=disk \
87 -device ide-hd,drive=disk,bus=ide.0 \ 90 -device ide-hd,drive=disk,bus=ide.0 \
88 -drive file=fat:rw:"$ESP_DIR",format=raw,if=none,id=esp \
89 -device ide-hd,drive=esp,bus=ide.1 \
90 -serial file:"$LOG" \ 91 -serial file:"$LOG" \
91 -monitor unix:"$SOCK",server,nowait \ 92 -monitor unix:"$SOCK",server,nowait \
92 -m 256M -machine q35 -cpu qemu64 -no-reboot -display none \ 93 -m 256M -machine q35 -cpu qemu64 -no-reboot -display none \
93 >"$QLOG" 2>&1 & 94 >"$QLOG" 2>&1 &
94echo $! >"$QPID"
95 95
96wait_log "$LOG" "boot: entering shell" 90 || fail "kernel never reached the shell" 96wait_log "$LOG" "boot: entering shell" 90 || fail "kernel never reached the shell"
97sleep 1 97sleep 1