diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index 3a39d247c8fe..6913415138ad 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -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; }; diff --git a/pkgs/test/hooks/default.nix b/pkgs/test/hooks/default.nix new file mode 100644 index 000000000000..fe3a9b2a2167 --- /dev/null +++ b/pkgs/test/hooks/default.nix @@ -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) + ''; + }; + }; +}