nixos: Add test that demonstrates how to use nesting.clone

This is actually very useful. Allows you to test switch-to-configuration

nesting.children is still currently still broken as it will throw
away 'too much' of the config, including the modules that make
nixos tests work in the first place. But that's something for
another time.
This commit is contained in:
Arian van Putten 2019-05-26 00:35:29 +02:00
parent d50b434234
commit a48047a755
2 changed files with 23 additions and 0 deletions

View File

@ -161,6 +161,7 @@ in
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
ndppd = handleTest ./ndppd.nix {};
neo4j = handleTest ./neo4j.nix {};
nesting = handleTest ./nesting.nix {};
netdata = handleTest ./netdata.nix {};
networking.networkd = handleTest ./networking.nix { networkd = true; };
networking.scripted = handleTest ./networking.nix { networkd = false; };

22
nixos/tests/nesting.nix Normal file
View File

@ -0,0 +1,22 @@
import ./make-test.nix {
name = "nesting";
machine = { pkgs, ... }: {
environment.systemPackages = [ pkgs.cowsay ];
nesting.clone = [
({ pkgs, ... }: {
environment.systemPackages = [ pkgs.hello ];
})
];
};
testScript = ''
$machine->waitForUnit("default.target");
$machine->succeed("cowsay hey");
$machine->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");
'';
}