diff options
author | sterni <sternenseemann@systemli.org> | 2021-09-11T16·44+0200 |
---|---|---|
committer | sterni <sternenseemann@systemli.org> | 2021-09-14T14·17+0000 |
commit | 4ebab80b5a026cc15c57f5a0eafa5e1af053f0c9 (patch) | |
tree | e52c28fa7765dadc6687269a1842f4fb11c62a2a /nix/utils/tests/default.nix | |
parent | 987b9b551c42642c7be9363737faa0629fe87117 (diff) |
test(nix/utils): unit test path predicates r/2858
Change-Id: I85f38ef8f284c4accd1ea744f61358622785358d Reviewed-on: https://cl.tvl.fyi/c/depot/+/3534 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
Diffstat (limited to 'nix/utils/tests/default.nix')
-rw-r--r-- | nix/utils/tests/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/nix/utils/tests/default.nix b/nix/utils/tests/default.nix new file mode 100644 index 000000000000..d8f38fde5cd6 --- /dev/null +++ b/nix/utils/tests/default.nix @@ -0,0 +1,63 @@ +{ depot, lib, ... }: + +let + inherit (depot.nix.runTestsuite) + runTestsuite + it + assertEq + assertThrows + assertDoesNotThrow + ; + + inherit (depot.nix.utils) + isDirectory + isRegularFile + isSymlink + ; + + assertUtilsPred = msg: act: exp: [ + (assertDoesNotThrow "${msg} does not throw" act) + (assertEq msg (builtins.tryEval act).value exp) + ]; + + pathPredicates = it "judges paths correctly" (lib.flatten [ + # isDirectory + (assertUtilsPred "directory isDirectory" + (isDirectory ./directory) true) + (assertUtilsPred "symlink not isDirectory" + (isDirectory ./symlink-directory) false) + (assertUtilsPred "file not isDirectory" + (isDirectory ./directory/file) false) + # isRegularFile + (assertUtilsPred "file isRegularFile" + (isRegularFile ./directory/file) true) + (assertUtilsPred "symlink not isRegularFile" + (isRegularFile ./symlink-file) false) + (assertUtilsPred "directory not isRegularFile" + (isRegularFile ./directory) false) + # isSymlink + (assertUtilsPred "symlink to file isSymlink" + (isSymlink ./symlink-file) true) + (assertUtilsPred "symlink to directory isSymlink" + (isSymlink ./symlink-directory) true) + (assertUtilsPred "symlink to symlink isSymlink" + (isSymlink ./symlink-symlink-file) true) + (assertUtilsPred "symlink to missing file isSymlink" + (isSymlink ./missing) true) + (assertUtilsPred "directory not isSymlink" + (isSymlink ./directory) false) + (assertUtilsPred "file not isSymlink" + (isSymlink ./directory/file) false) + # missing files throw + (assertThrows "isDirectory throws on missing file" + (isDirectory ./does-not-exist)) + (assertThrows "isRegularFile throws on missing file" + (isRegularFile ./does-not-exist)) + (assertThrows "isSymlink throws on missing file" + (isSymlink ./does-not-exist)) + ]); +in + +runTestsuite "nix.utils" [ + pathPredicates +] |