test(nix/utils): unit test path predicates
Change-Id: I85f38ef8f284c4accd1ea744f61358622785358d Reviewed-on: https://cl.tvl.fyi/c/depot/+/3534 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
This commit is contained in:
parent
987b9b551c
commit
4ebab80b5a
8 changed files with 69 additions and 0 deletions
1
nix/utils/tests/.skip-subtree
Normal file
1
nix/utils/tests/.skip-subtree
Normal file
|
@ -0,0 +1 @@
|
|||
subdirectories are just test cases
|
63
nix/utils/tests/default.nix
Normal file
63
nix/utils/tests/default.nix
Normal file
|
@ -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
|
||||
]
|
0
nix/utils/tests/directory/file
Normal file
0
nix/utils/tests/directory/file
Normal file
1
nix/utils/tests/missing
Symbolic link
1
nix/utils/tests/missing
Symbolic link
|
@ -0,0 +1 @@
|
|||
does-not-exist
|
1
nix/utils/tests/symlink-directory
Symbolic link
1
nix/utils/tests/symlink-directory
Symbolic link
|
@ -0,0 +1 @@
|
|||
directory
|
1
nix/utils/tests/symlink-file
Symbolic link
1
nix/utils/tests/symlink-file
Symbolic link
|
@ -0,0 +1 @@
|
|||
directory/file
|
1
nix/utils/tests/symlink-symlink-directory
Symbolic link
1
nix/utils/tests/symlink-symlink-directory
Symbolic link
|
@ -0,0 +1 @@
|
|||
symlink-directory
|
1
nix/utils/tests/symlink-symlink-file
Symbolic link
1
nix/utils/tests/symlink-symlink-file
Symbolic link
|
@ -0,0 +1 @@
|
|||
symlink-file
|
Loading…
Reference in a new issue