diff options
Diffstat (limited to '')
-rw-r--r-- | tests.nix | 28 | ||||
-rw-r--r-- | tests/README.md | 6 |
2 files changed, 34 insertions, 0 deletions
diff --git a/tests.nix b/tests.nix new file mode 100644 index 0000000..d91a9c9 --- /dev/null +++ b/tests.nix @@ -0,0 +1,28 @@ +{ + pkgs, + lib, + specialArgs, +}: let + # for `nix eval --file` (as it does not support args) use: + # ``` + # specialArgs = {}; + # pkgs = (builtins.getFlake "nixpkgs").legacyPackages."x86_64-linux"; + # inherit (pkgs) lib; + # ``` + # instead of the function arguments above. + importTests' = test: let + basename = builtins.baseNameOf test; + testName = builtins.baseNameOf (lib.strings.removeSuffix "/${basename}" "${builtins.toString test}"); + in { + name = "${testName}"; + value = pkgs.callPackage test specialArgs; + }; + + importTests = dir: + builtins.listToAttrs (builtins.map importTests' ( + lib.fileset.toList (lib.fileset.fileFilter (file: file.name == "test.nix") dir) + )); + + tests = importTests ./tests; +in + tests diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..2613f4a --- /dev/null +++ b/tests/README.md @@ -0,0 +1,6 @@ +# Tests + +This directory tree mirrors the modules defined in the +[modules](`../modules/`) directory. Each module should have at least +one test in the mirrored directory, effectively replacing the module's +`default.nix` file. |