1{ system ? builtins.currentSystem }:
2
3with import ../lib/testing.nix { inherit system; };
4with import ../lib/qemu-flags.nix;
5with pkgs.lib;
6
7let
8
9 iso =
10 (import ../lib/eval-config.nix {
11 inherit system;
12 modules =
13 [ ../modules/installer/cd-dvd/installation-cd-minimal.nix
14 ../modules/testing/test-instrumentation.nix
15 { key = "serial"; }
16 ];
17 }).config.system.build.isoImage;
18
19 makeBootTest = name: machineConfig:
20 makeTest {
21 inherit iso;
22 name = "boot-" + name;
23 nodes = { };
24 testScript =
25 ''
26 my $machine = createMachine({ ${machineConfig}, qemuFlags => '-m 768' });
27 $machine->start;
28 $machine->waitForUnit("multi-user.target");
29 $machine->shutdown;
30 '';
31 };
32in {
33 bootBiosCdrom = makeBootTest "bios-cdrom" ''
34 cdrom => glob("${iso}/iso/*.iso")
35 '';
36 bootBiosUsb = makeBootTest "bios-usb" ''
37 usb => glob("${iso}/iso/*.iso")
38 '';
39 bootUefiCdrom = makeBootTest "uefi-cdrom" ''
40 cdrom => glob("${iso}/iso/*.iso"),
41 bios => '${pkgs.OVMF}/FV/OVMF.fd'
42 '';
43 bootUefiUsb = makeBootTest "uefi-usb" ''
44 usb => glob("${iso}/iso/*.iso"),
45 bios => '${pkgs.OVMF}/FV/OVMF.fd'
46 '';
47 }
48