summaryrefslogtreecommitdiffstats
path: root/tests/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tests/default.nix')
-rw-r--r--tests/default.nix28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/default.nix b/tests/default.nix
new file mode 100644
index 0000000..c7c15a5
--- /dev/null
+++ b/tests/default.nix
@@ -0,0 +1,28 @@
+{ makeTest ? import <nixpkgs/nixos/tests/make-test-python.nix>
+, eval-config ? import <nixpkgs/nixos/lib/eval-config.nix>
+, pkgs ? (import <nixpkgs> { })
+}@args:
+let
+ lib = pkgs.lib;
+ makeDiskoTest = (pkgs.callPackage ./lib.nix { inherit makeTest eval-config; }).makeDiskoTest;
+
+ evalTest = name: configFile: let
+ disko-config = import configFile;
+ in {
+ "${name}-tsp-create" = pkgs.writeScript "create" ((pkgs.callPackage ../. { }).create disko-config);
+ "${name}-tsp-mount" = pkgs.writeScript "mount" ((pkgs.callPackage ../. { }).mount disko-config);
+ };
+
+ allTestFilenames =
+ builtins.map (lib.removeSuffix ".nix") (
+ builtins.filter
+ (x: lib.hasSuffix ".nix" x && x != "default.nix" && x != "lib.nix")
+ (lib.attrNames (builtins.readDir ./.))
+ );
+
+ allTests = lib.genAttrs (allTestFilenames) (test: import (./. + "/${test}.nix") { inherit makeDiskoTest pkgs; }) //
+ evalTest "lvm-luks-example" ../example/config.nix // {
+ standalone = (pkgs.nixos [ ../example/stand-alone/configuration.nix ]).config.system.build.toplevel;
+ };
+in
+allTests