about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/lib/test-driver/Machine.pm15
-rw-r--r--nixos/tests/boot.nix5
2 files changed, 13 insertions, 7 deletions
diff --git a/nixos/lib/test-driver/Machine.pm b/nixos/lib/test-driver/Machine.pm
index 5e4c14e749fd..4d3d63cd2dbf 100644
--- a/nixos/lib/test-driver/Machine.pm
+++ b/nixos/lib/test-driver/Machine.pm
@@ -31,12 +31,17 @@ sub new {
 
     if (!$startCommand) {
         # !!! merge with qemu-vm.nix.
-        my $netArgs = "";
-        $netArgs .= ",romfile=$args->{netRomFile}"
-            if defined $args->{netRomFile};
+        my $netBackend = "-netdev user,id=net0";
+        my $netFrontend = "-device virtio-net-pci,netdev=net0";
+
+        $netBackend .= "," . $args->{netBackendArgs}
+            if defined $args->{netBackendArgs};
+
+        $netFrontend .= "," . $args->{netFrontendArgs}
+            if defined $args->{netFrontendArgs};
+
         $startCommand =
-            "qemu-kvm -m 384 " .
-            "-device virtio-net-pci,netdev=net0${netArgs} \$QEMU_OPTS ";
+            "qemu-kvm -m 384 $netBackend $netFrontend \$QEMU_OPTS ";
 
         if (defined $args->{hda}) {
             if ($args->{hdaInterface} eq "scsi") {
diff --git a/nixos/tests/boot.nix b/nixos/tests/boot.nix
index 12a34d4401f6..7d1b393da1e4 100644
--- a/nixos/tests/boot.nix
+++ b/nixos/tests/boot.nix
@@ -61,7 +61,8 @@ let
         ];
       };
       machineConfig = perlAttrs ({
-        qemuFlags = "-boot order=n -netdev user,id=net0,tftp=${ipxeBootDir}/,bootfile=netboot.ipxe -m 2000";
+        qemuFlags = "-boot order=n -m 2000";
+        netBackendArgs = "tftp=${ipxeBootDir},bootfile=netboot.ipxe";
       } // extraConfig);
     in
       makeTest {
@@ -100,6 +101,6 @@ in {
     uefiNetboot = makeNetbootTest "uefi" {
       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.
-      netRomFile = ''"${pkgs.ipxe}/ipxe.efirom"'';
+      netFrontendArgs = ''romfile="${pkgs.ipxe}/ipxe.efirom"'';
     };
 }