tests.hooks.default-stdenv-hooks.make-symlinks-relative: init

This commit is contained in:
Artturin 2022-12-09 08:45:38 +02:00
parent 6c01681679
commit 11b49fa791
2 changed files with 30 additions and 0 deletions

View file

@ -26,6 +26,8 @@ with pkgs;
haskell = callPackage ./haskell { };
hooks = callPackage ./hooks { };
cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; };

View file

@ -0,0 +1,28 @@
# To run these tests:
# nix-build -A tests.hooks
{ stdenv, pkgs, lib }:
{
# this attrset is for hooks in `stdenv.defaultNativeBuildInputs`
default-stdenv-hooks = lib.recurseIntoAttrs {
make-symlinks-relative = stdenv.mkDerivation {
name = "test-make-symlinks-relative";
passAsFile = [ "buildCommand" ];
buildCommand = ''
mkdir -p $out/{bar,baz}
source1="$out/bar/foo"
destination1="$out/baz/foo"
echo foo > $source1
ln -s $source1 $destination1
echo "symlink before patching: $(readlink $destination1)"
_makeSymlinksRelative
echo "symlink after patching: $(readlink $destination1)"
([[ -e $destination1 ]] && echo "symlink isn't broken") || (echo "symlink is broken" && exit 1)
([[ $(readlink $destination1) == "../bar/foo" ]] && echo "absolute symlink was made relative") || (echo "symlink was not made relative" && exit 1)
'';
};
};
}