Something went wrong. Try again.
Nothing to see here, move along meow
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485#!/usr/bin/env bashset -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
KERNEL_BIN="$ROOT/target/x86_64-lancer-none/debug/lancer-kernel"ISO_DIR="$ROOT/target/iso"ISO_FILE="$ROOT/target/lancer.iso"LIMINE_DIR="$ROOT/target/limine"OVMF_VARS="$ROOT/target/ovmf/OVMF_VARS_4M.fd"OVMF_CODE="/usr/share/OVMF/OVMF_CODE_4M.fd"
echo "Building test kernel"cargo build --manifest-path "$ROOT/Cargo.toml" -p lancer-kernel --features test-kernel
echo "Creating ISO"rm -rf "$ISO_DIR"mkdir -p "$ISO_DIR/boot/limine" "$ISO_DIR/EFI/BOOT"cp "$KERNEL_BIN" "$ISO_DIR/boot/kernel"cat > "$ISO_DIR/boot/limine/limine.conf" <<'LIMINEEOF'timeout: 0serial: yes
/Lancer Test protocol: limine kernel_path: boot():/boot/kernelLIMINEEOFcp "$LIMINE_DIR/limine-bios.sys" "$ISO_DIR/boot/limine/"cp "$LIMINE_DIR/limine-bios-cd.bin" "$ISO_DIR/boot/limine/"cp "$LIMINE_DIR/limine-uefi-cd.bin" "$ISO_DIR/boot/limine/"cp "$LIMINE_DIR/BOOTX64.EFI" "$ISO_DIR/EFI/BOOT/"cp "$LIMINE_DIR/BOOTIA32.EFI" "$ISO_DIR/EFI/BOOT/"xorriso -as mkisofs \ -b boot/limine/limine-bios-cd.bin \ -no-emul-boot -boot-load-size 4 -boot-info-table \ --efi-boot boot/limine/limine-uefi-cd.bin \ -efi-boot-part --efi-boot-image --protective-msdos-label \ "$ISO_DIR" -o "$ISO_FILE""$LIMINE_DIR/limine" bios-install "$ISO_FILE"
mkdir -p "$(dirname "$OVMF_VARS")"cp /usr/share/OVMF/OVMF_VARS_4M.fd "$OVMF_VARS"
echo "Running test kernel in QEMU"set +etimeout 60s qemu-system-x86_64 \ -M q35,accel=kvm:tcg,kernel-irqchip=split \ -cpu host \ -m 512M \ -drive if=pflash,format=raw,readonly=on,file="$OVMF_CODE" \ -drive if=pflash,format=raw,file="$OVMF_VARS" \ -cdrom "$ISO_FILE" \ -serial stdio \ -display none \ -no-reboot \ -device intel-iommu,intremap=on,caching-mode=on \ -device virtio-net-pci,netdev=net0 \ -netdev user,id=net0 \ -device isa-debug-exit,iobase=0x501,iosize=0x04 \ < /dev/nullQEMU_EXIT=$?set -e
case $QEMU_EXIT in 33) exit 0 ;; 35) echo "" echo "TESTS FAILED" exit 1 ;; 124|137) echo "" echo "TIMEOUT" exit 1 ;; *) echo "" echo "UNEXPECTED EXIT CODE: $QEMU_EXIT" exit 1 ;;esac