about summary refs log tree commit diff
path: root/nixos/lib
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2022-06-15 16:59:21 +0200
committerRobert Hensing <robert@roberthensing.nl>2022-09-24 17:38:08 +0100
commitb0c781cc4136e4678db1864875750c916b78ad33 (patch)
tree9178479f4268febe7be869f899ce8bc60ba774b5 /nixos/lib
parent5727fd3e6f17684eb8bace334564cda302077524 (diff)
nixos/testing: Move entrypoint to nixos/lib + doc
Diffstat (limited to 'nixos/lib')
-rw-r--r--nixos/lib/default.nix8
-rw-r--r--nixos/lib/testing-python.nix33
-rw-r--r--nixos/lib/testing/default.nix24
3 files changed, 45 insertions, 20 deletions
diff --git a/nixos/lib/default.nix b/nixos/lib/default.nix
index 2b3056e01457f..65d91342d4d15 100644
--- a/nixos/lib/default.nix
+++ b/nixos/lib/default.nix
@@ -21,6 +21,8 @@ let
   seqAttrsIf = cond: a: lib.mapAttrs (_: v: seqIf cond a v);
 
   eval-config-minimal = import ./eval-config-minimal.nix { inherit lib; };
+
+  testing-lib = import ./testing/default.nix { inherit lib; };
 in
 /*
   This attribute set appears as lib.nixos in the flake, or can be imported
@@ -30,4 +32,10 @@ in
   inherit (seqAttrsIf (!featureFlags?minimalModules) minimalModulesWarning eval-config-minimal)
     evalModules
     ;
+
+  inherit (testing-lib)
+    evalTest
+    runTest
+    ;
+
 }
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
index 1c331a3c5162b..e72e5d476bfa6 100644
--- a/nixos/lib/testing-python.nix
+++ b/nixos/lib/testing-python.nix
@@ -12,6 +12,10 @@
 
 with pkgs;
 
+let
+  nixos-lib = import ./default.nix { inherit (pkgs) lib; };
+in
+
 rec {
 
   inherit pkgs;
@@ -166,26 +170,15 @@ rec {
           ${lib.optionalString (interactive) "--add-flags --interactive"}
       '');
 
-  evalTest = module: lib.evalModules { modules = testModules ++ [ module ]; };
-  runTest = module: (evalTest module).config.run;
-
-  testModules = [
-    ./testing/driver.nix
-    ./testing/interactive.nix
-    ./testing/legacy.nix
-    ./testing/meta.nix
-    ./testing/name.nix
-    ./testing/network.nix
-    ./testing/nodes.nix
-    ./testing/pkgs.nix
-    ./testing/run.nix
-    ./testing/testScript.nix
-    {
-      config = {
-        hostPkgs = pkgs;
-      };
-    }
-  ];
+  evalTest = module: nixos-lib.evalTest { imports = [ extraTestModule module ]; };
+  runTest = module: nixos-lib.runTest { imports = [ extraTestModule module ]; };
+
+  extraTestModule = {
+    config = {
+      hostPkgs = pkgs;
+      minimalResult = hydra;
+    };
+  };
 
   # Make a full-blown test
   makeTest =
diff --git a/nixos/lib/testing/default.nix b/nixos/lib/testing/default.nix
new file mode 100644
index 0000000000000..676d52f5c3fb7
--- /dev/null
+++ b/nixos/lib/testing/default.nix
@@ -0,0 +1,24 @@
+{ lib }:
+let
+
+  evalTest = module: lib.evalModules { modules = testModules ++ [ module ]; };
+  runTest = module: (evalTest module).config.result;
+
+  testModules = [
+    ./call-test.nix
+    ./driver.nix
+    ./interactive.nix
+    ./legacy.nix
+    ./meta.nix
+    ./name.nix
+    ./network.nix
+    ./nodes.nix
+    ./pkgs.nix
+    ./run.nix
+    ./testScript.nix
+  ];
+
+in
+{
+  inherit evalTest runTest testModules;
+}