about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorArian van Putten <aeroboy94@gmail.com>2019-05-26 00:35:29 +0200
committerArian van Putten <aeroboy94@gmail.com>2019-05-26 00:37:13 +0200
commita48047a755047b34471a740dffa07744221d63c2 (patch)
tree012d2152ca867b2405e617f0143172e653e8aefa /nixos
parentd50b43423455ac06f3e237dbc0a0c98bcb4b5dcf (diff)
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.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/nesting.nix22
2 files changed, 23 insertions, 0 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 9bce49c9e3027..10a381c2c8f48 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -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; };
diff --git a/nixos/tests/nesting.nix b/nixos/tests/nesting.nix
new file mode 100644
index 0000000000000..3be64d7a9b549
--- /dev/null
+++ b/nixos/tests/nesting.nix
@@ -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");
+
+  '';
+}