diff options
Diffstat (limited to '')
-rwxr-xr-x | test/TEST-18-UEFI/test.sh | 55 |
1 files changed, 15 insertions, 40 deletions
diff --git a/test/TEST-18-UEFI/test.sh b/test/TEST-18-UEFI/test.sh index 4191fed..769a0e3 100755 --- a/test/TEST-18-UEFI/test.sh +++ b/test/TEST-18-UEFI/test.sh @@ -3,16 +3,10 @@ # shellcheck disable=SC2034 TEST_DESCRIPTION="UEFI boot" -# Linux kernel requirements -# CONFIG_BLK_DEV_INITRD for initramfs -# CONFIG_EFI_HANDOVER_PROTOCOL for ovmf (Open Virtual Machine Firmware) -# CONFIG_SATA_AHCI for ahci.ko -# CONFIG_BLK_DEV_SD for sd_mod.ko -# CONFIG_SQUASHFS_ZLIB for squashfs.ko - ovmf_code() { for path in \ "/usr/share/OVMF/OVMF_CODE.fd" \ + "/usr/share/OVMF/OVMF_CODE_4M.fd" \ "/usr/share/edk2/x64/OVMF_CODE.fd" \ "/usr/share/edk2-ovmf/OVMF_CODE.fd" \ "/usr/share/qemu/ovmf-x86_64-4m.bin"; do @@ -24,33 +18,11 @@ test_check() { [[ -n "$(ovmf_code)" ]] } -KVERSION="${KVERSION-$(uname -r)}" - -test_marker_reset() { - dd if=/dev/zero of="$TESTDIR"/marker.img bs=1MiB count=1 -} - -test_marker_check() { - grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success -- "$TESTDIR"/marker.img - return $? -} - -test_dracut() { - TEST_DRACUT_ARGS+=" --local --no-hostonly --no-early-microcode --add test --kver $KVERSION" - - # shellcheck disable=SC2162 - IFS=' ' read -a TEST_DRACUT_ARGS_ARRAY <<< "$TEST_DRACUT_ARGS" - - "$DRACUT" "$@" \ - --kernel-cmdline "panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot selinux=0 console=ttyS0,115200n81 $DEBUGFAIL" \ - "${TEST_DRACUT_ARGS_ARRAY[@]}" || return 1 -} - test_run() { declare -a disk_args=() declare -i disk_index=1 - qemu_add_drive_args disk_index disk_args "$TESTDIR"/marker.img marker - qemu_add_drive_args disk_index disk_args "$TESTDIR"/squashfs.img root + qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker + qemu_add_drive disk_index disk_args "$TESTDIR"/squashfs.img root test_marker_reset "$testdir"/run-qemu "${disk_args[@]}" -net none \ @@ -62,8 +34,8 @@ test_run() { test_setup() { # Create what will eventually be our root filesystem - "$DRACUT" --local --no-hostonly --no-early-microcode --nofscks \ - --tmpdir "$TESTDIR" --keep --modules "test-root" --include ./test-init.sh /sbin/init \ + "$DRACUT" -N -l --keep --tmpdir "$TESTDIR" \ + -m "test-root" \ "$TESTDIR"/tmp-initramfs.root "$KVERSION" || return 1 mkdir -p "$TESTDIR"/dracut.*/initramfs/proc @@ -71,15 +43,18 @@ test_setup() { mkdir -p "$TESTDIR"/ESP/EFI/BOOT - if [ -f "/usr/lib/gummiboot/linuxx64.efi.stub" ]; then - TEST_DRACUT_ARGS+=" --uefi-stub /usr/lib/gummiboot/linuxx64.efi.stub " - fi + test_dracut \ + --modules 'rootfs-block' \ + --kernel-cmdline 'root=/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_root ro rd.skipfsck rootfstype=squashfs' \ + --drivers 'squashfs' \ + --uefi \ + "$TESTDIR"/ESP/EFI/BOOT/BOOTX64.efi - mkdir -p "$TESTDIR"/ESP/EFI/BOOT test_dracut \ - --modules 'rootfs-block test' \ - --kernel-cmdline 'root=/dev/sdc ro rd.skipfsck rootfstype=squashfs' \ - --drivers 'ahci sd_mod squashfs' \ + --hostonly \ + --modules 'rootfs-block' \ + --kernel-cmdline 'root=/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_root ro rd.skipfsck rootfstype=squashfs' \ + --drivers 'squashfs' \ --uefi \ "$TESTDIR"/ESP/EFI/BOOT/BOOTX64.efi } |