fix(nix/utils): remove predicates based on symlink heuristic
Due to [nix#6579] the heuristic which allowed us to determine if a symlink points to a directory is not reliable – if restrict-eval is enabled it _will_ return wrong results. Until upstream resolves this (and we backport the patch) it is probably best to not expose this functionality at all. [nix#6579]: https://github.com/NixOS/nix/issues/6579 Change-Id: Id847c794bb279be909c5426953c4fe13c2493343 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5761 Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
c06d47b787
commit
a6367b4bdc
2 changed files with 6 additions and 63 deletions
|
|
@ -11,7 +11,6 @@ let
|
|||
|
||||
inherit (depot.nix.utils)
|
||||
isDirectory
|
||||
realPathIsDirectory
|
||||
isRegularFile
|
||||
isSymlink
|
||||
pathType
|
||||
|
|
@ -34,16 +33,6 @@ let
|
|||
(assertUtilsPred "file not isDirectory"
|
||||
(isDirectory ./directory/file)
|
||||
false)
|
||||
# realPathIsDirectory
|
||||
(assertUtilsPred "directory realPathIsDirectory"
|
||||
(realPathIsDirectory ./directory)
|
||||
true)
|
||||
(assertUtilsPred "symlink to directory realPathIsDirectory"
|
||||
(realPathIsDirectory ./symlink-directory)
|
||||
true)
|
||||
(assertUtilsPred "realPathIsDirectory resolves chained symlinks"
|
||||
(realPathIsDirectory ./symlink-symlink-directory)
|
||||
true)
|
||||
# isRegularFile
|
||||
(assertUtilsPred "file isRegularFile"
|
||||
(isRegularFile ./directory/file)
|
||||
|
|
@ -76,31 +65,12 @@ let
|
|||
# missing files throw
|
||||
(assertThrows "isDirectory throws on missing file"
|
||||
(isDirectory ./does-not-exist))
|
||||
(assertThrows "realPathIsDirectory throws on missing file"
|
||||
(realPathIsDirectory ./does-not-exist))
|
||||
(assertThrows "isRegularFile throws on missing file"
|
||||
(isRegularFile ./does-not-exist))
|
||||
(assertThrows "isSymlink throws on missing file"
|
||||
(isSymlink ./does-not-exist))
|
||||
]);
|
||||
|
||||
symlinkPathTypeTests = it "correctly judges symlinks" [
|
||||
(assertEq "symlinks to directories are detected correcty"
|
||||
((pathType ./symlink-directory).symlink or null) "directory")
|
||||
(assertEq "symlinks to symlinks to directories are detected correctly"
|
||||
((pathType ./symlink-symlink-directory).symlink or null) "directory")
|
||||
(assertEq "symlinks to nowhere are not distinguished from files"
|
||||
((pathType ./missing).symlink or null) "regular-or-missing")
|
||||
|
||||
# These tests are commented out because they no longer work with
|
||||
# restrict-eval turned on.
|
||||
|
||||
# (assertEq "symlinks to files are detected-ish"
|
||||
# ((pathType ./symlink-file).symlink or null) "regular-or-missing")
|
||||
# (assertEq "symlinks to symlinks to files are detected-ish"
|
||||
# ((pathType ./symlink-symlink-file).symlink or null) "regular-or-missing")
|
||||
];
|
||||
|
||||
cheddarStorePath =
|
||||
builtins.unsafeDiscardStringContext depot.tools.cheddar.outPath;
|
||||
|
||||
|
|
@ -125,6 +95,5 @@ in
|
|||
|
||||
runTestsuite "nix.utils" [
|
||||
pathPredicates
|
||||
symlinkPathTypeTests
|
||||
storePathNameTests
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue