diff --git a/nixos/lib/build-vms.nix b/nixos/lib/build-vms.nix index ba8e13b431a..6c92aa1ffa2 100644 --- a/nixos/lib/build-vms.nix +++ b/nixos/lib/build-vms.nix @@ -32,14 +32,14 @@ rec { import ./eval-config.nix { inherit system; - modules = configurations ++ + modules = configurations ++ extraConfigurations; + baseModules = (import ../modules/module-list.nix) ++ [ ../modules/virtualisation/qemu-vm.nix ../modules/testing/test-instrumentation.nix # !!! should only get added for automated test runs { key = "no-manual"; documentation.nixos.enable = false; } { key = "qemu"; system.build.qemu = qemu; } { key = "nodes"; _module.args.nodes = nodes; } - ] ++ optional minimal ../modules/testing/minimal-kernel.nix - ++ extraConfigurations; + ] ++ optional minimal ../modules/testing/minimal-kernel.nix; }; diff --git a/nixos/tests/nesting.nix b/nixos/tests/nesting.nix index 3be64d7a9b5..1306d6f8e0c 100644 --- a/nixos/tests/nesting.nix +++ b/nixos/tests/nesting.nix @@ -1,22 +1,42 @@ import ./make-test.nix { name = "nesting"; - machine = { pkgs, ... }: { - environment.systemPackages = [ pkgs.cowsay ]; - nesting.clone = [ - ({ pkgs, ... }: { - environment.systemPackages = [ pkgs.hello ]; - }) - ]; + nodes = { + clone = { pkgs, ... }: { + environment.systemPackages = [ pkgs.cowsay ]; + nesting.clone = [ + ({ pkgs, ... }: { + environment.systemPackages = [ pkgs.hello ]; + }) + ]; + }; + children = { pkgs, ... }: { + environment.systemPackages = [ pkgs.cowsay ]; + nesting.children = [ + ({ pkgs, ... }: { + environment.systemPackages = [ pkgs.hello ]; + }) + ]; + }; }; testScript = '' - $machine->waitForUnit("default.target"); - $machine->succeed("cowsay hey"); - $machine->fail("hello"); + $clone->waitForUnit("default.target"); + $clone->succeed("cowsay hey"); + $clone->fail("hello"); # Nested clones do inherit from parent - $machine->succeed("/run/current-system/fine-tune/child-1/bin/switch-to-configuration test"); - $machine->succeed("cowsay hey"); - $machine->succeed("hello"); + $clone->succeed("/run/current-system/fine-tune/child-1/bin/switch-to-configuration test"); + $clone->succeed("cowsay hey"); + $clone->succeed("hello"); + + + $children->waitForUnit("default.target"); + $children->succeed("cowsay hey"); + $children->fail("hello"); + + # Nested children do not inherit from parent + $children->succeed("/run/current-system/fine-tune/child-1/bin/switch-to-configuration test"); + $children->fail("cowsay hey"); + $children->succeed("hello"); ''; }