boot tests: don't use globbing

Turns out I broke all the boot tests except netboot.

Instead of relying on build-time search for .iso we can use a proper attribute.
This commit is contained in:
Nikolay Amiantov 2019-07-22 13:21:33 +03:00
parent fd20e227a0
commit 5f4288d49d

View File

@ -17,7 +17,7 @@ let
]; ];
}).config.system.build.isoImage; }).config.system.build.isoImage;
perlAttrs = params: "{ ${concatStringsSep "," (mapAttrsToList (name: param: "${name} => '${toString param}'") params)} }"; perlAttrs = params: "{ ${concatStringsSep ", " (mapAttrsToList (name: param: "${name} => ${builtins.toJSON param}") params)} }";
makeBootTest = name: extraConfig: makeBootTest = name: extraConfig:
let let
@ -79,28 +79,28 @@ let
in { in {
biosCdrom = makeBootTest "bios-cdrom" { biosCdrom = makeBootTest "bios-cdrom" {
cdrom = ''glob("${iso}/iso/*.iso")''; cdrom = "${iso}/iso/${iso.isoName}";
}; };
biosUsb = makeBootTest "bios-usb" { biosUsb = makeBootTest "bios-usb" {
usb = ''glob("${iso}/iso/*.iso")''; usb = "${iso}/iso/${iso.isoName}";
}; };
uefiCdrom = makeBootTest "uefi-cdrom" { uefiCdrom = makeBootTest "uefi-cdrom" {
cdrom = ''glob("${iso}/iso/*.iso"''; cdrom = "${iso}/iso/${iso.isoName}";
bios = ''"${pkgs.OVMF.fd}/FV/OVMF.fd"''; bios = "${pkgs.OVMF.fd}/FV/OVMF.fd";
}; };
uefiUsb = makeBootTest "uefi-usb" { uefiUsb = makeBootTest "uefi-usb" {
usb = ''glob("${iso}/iso/*.iso")''; usb = "${iso}/iso/${iso.isoName}";
bios = ''"${pkgs.OVMF.fd}/FV/OVMF.fd"''; bios = "${pkgs.OVMF.fd}/FV/OVMF.fd";
}; };
biosNetboot = makeNetbootTest "bios" {}; biosNetboot = makeNetbootTest "bios" {};
uefiNetboot = makeNetbootTest "uefi" { uefiNetboot = makeNetbootTest "uefi" {
bios = ''"${pkgs.OVMF.fd}/FV/OVMF.fd"''; bios = "${pkgs.OVMF.fd}/FV/OVMF.fd";
# Custom ROM is needed for EFI PXE boot. I failed to understand exactly why, because QEMU should still use iPXE for EFI. # Custom ROM is needed for EFI PXE boot. I failed to understand exactly why, because QEMU should still use iPXE for EFI.
netFrontendArgs = ''romfile="${pkgs.ipxe}/ipxe.efirom"''; netFrontendArgs = "romfile=${pkgs.ipxe}/ipxe.efirom";
}; };
} }