From a6367b4bdcd126354d29eedee29f5de6c9703524 Mon Sep 17 00:00:00 2001 From: sterni Date: Sat, 28 May 2022 13:28:37 +0200 Subject: fix(nix/utils): remove predicates based on symlink heuristic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: tazjin --- nix/utils/tests/default.nix | 31 ------------------------------- 1 file changed, 31 deletions(-) (limited to 'nix/utils/tests') diff --git a/nix/utils/tests/default.nix b/nix/utils/tests/default.nix index b87c29cac7..344a1771d7 100644 --- a/nix/utils/tests/default.nix +++ b/nix/utils/tests/default.nix @@ -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 ] -- cgit 1.4.1