From ddbd436dc4644aa2c95730b3be8e1a3de9154acc Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Sun, 29 Mar 2020 12:00:00 +0000 Subject: [PATCH] nixos/tests/os-prober.nix: port to python --- nixos/tests/os-prober.nix | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/nixos/tests/os-prober.nix b/nixos/tests/os-prober.nix index 6a38f5ca531..be0235a4175 100644 --- a/nixos/tests/os-prober.nix +++ b/nixos/tests/os-prober.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({pkgs, lib, ...}: +import ./make-test-python.nix ({pkgs, lib, ...}: let # A filesystem image with a (presumably) bootable debian debianImage = pkgs.vmTools.diskImageFuns.debian9i386 { @@ -34,9 +34,6 @@ let ''; }; - # options to add the disk to the test vm - QEMU_OPTS = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio"; - # a part of the configuration of the test vm simpleConfig = { boot.loader.grub = { @@ -71,7 +68,7 @@ in { machine = { config, pkgs, ... }: (simpleConfig // { imports = [ ../modules/profiles/installation-device.nix ../modules/profiles/base.nix ]; - virtualisation.memorySize = 1024; + virtualisation.memorySize = 1300; # The test cannot access the network, so any packages # nixos-rebuild needs must be included in the VM. system.extraDependencies = with pkgs; @@ -99,22 +96,28 @@ in { testScript = '' # hack to add the secondary disk - $machine->{startCommand} = "QEMU_OPTS=\"\$QEMU_OPTS \"${lib.escapeShellArg QEMU_OPTS} ".$machine->{startCommand}; + os.environ[ + "QEMU_OPTS" + ] = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio" - $machine->start; - $machine->succeed("udevadm settle"); - $machine->waitForUnit("multi-user.target"); + machine.start() + machine.succeed("udevadm settle") + machine.wait_for_unit("multi-user.target") + print(machine.succeed("lsblk")) # check that os-prober works standalone - $machine->succeed("${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1"); + machine.succeed( + "${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1" + ) # rebuild and test that debian is available in the grub menu - $machine->succeed("nixos-generate-config"); - $machine->copyFileFromHost( + machine.succeed("nixos-generate-config") + machine.copy_from_host( "${configFile}", - "/etc/nixos/configuration.nix"); - $machine->succeed("nixos-rebuild boot >&2"); + "/etc/nixos/configuration.nix", + ) + machine.succeed("nixos-rebuild boot >&2") - $machine->succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg"); + machine.succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg") ''; })