Loading nixos/tests/os-prober.nix +18 −15 Original line number Diff line number Diff line 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 { Loading Loading @@ -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 = { Loading Loading @@ -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; Loading Loading @@ -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") ''; }) Loading
nixos/tests/os-prober.nix +18 −15 Original line number Diff line number Diff line 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 { Loading Loading @@ -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 = { Loading Loading @@ -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; Loading Loading @@ -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") ''; })