3
0
Fork 0
forked from mirrors/nixpkgs

nixos: Make 'nesting.clone' work in NixOS tests (#62069)

nixos: Make 'nesting.clone' work in NixOS tests
This commit is contained in:
Florian Klink 2019-05-29 14:45:53 +02:00 committed by GitHub
commit b09c6ac05b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 47 additions and 4 deletions

View file

@ -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; }
] ++ optional minimal ../modules/testing/minimal-kernel.nix
++ extraConfigurations;
extraArgs = { inherit nodes; };
{ key = "nodes"; _module.args.nodes = nodes; }
] ++ optional minimal ../modules/testing/minimal-kernel.nix;
};

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; };

42
nixos/tests/nesting.nix Normal file
View file

@ -0,0 +1,42 @@
import ./make-test.nix {
name = "nesting";
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 = ''
$clone->waitForUnit("default.target");
$clone->succeed("cowsay hey");
$clone->fail("hello");
# Nested clones do inherit from parent
$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");
'';
}