`ghcWithPackages` broke in #411741, partially because we don't have tests for it. This adds some tests to make sure it keeps working in the future. For now these tests will fail until #415436 is fixed. This is split off of #415434. Adds a regression test for https://github.com/NixOS/nixpkgs/pull/224542
49 lines
1.2 KiB
Nix
49 lines
1.2 KiB
Nix
{
|
|
lib,
|
|
runCommand,
|
|
haskellPackages,
|
|
}:
|
|
|
|
lib.recurseIntoAttrs {
|
|
# This is special-cased to return just `ghc`.
|
|
trivial = haskellPackages.ghcWithPackages (hsPkgs: [ ]);
|
|
|
|
# Here we actually build a trivial package.
|
|
hello = haskellPackages.ghcWithPackages (hsPkgs: [
|
|
hsPkgs.hello
|
|
]);
|
|
|
|
# Here we build a database with multiple packages.
|
|
multiple = haskellPackages.ghcWithPackages (hsPkgs: [
|
|
hsPkgs.hspec
|
|
hsPkgs.unordered-containers
|
|
]);
|
|
|
|
# See: https://github.com/NixOS/nixpkgs/pull/224542
|
|
regression-224542 =
|
|
runCommand "regression-224542"
|
|
{
|
|
buildInputs = [
|
|
(haskellPackages.ghcWithPackages (hsPkgs: [
|
|
hsPkgs.hspec
|
|
]))
|
|
];
|
|
}
|
|
''
|
|
ghc --interactive \
|
|
-Werror=unrecognised-warning-flags \
|
|
-Werror=missed-extra-shared-lib \
|
|
2>&1 \
|
|
| tee ghc-output.txt
|
|
|
|
# If GHC failed to find a shared library, linking dylibs in
|
|
# `ghcWithPackages` didn't work correctly.
|
|
if grep --quiet "error: .*-Wmissed-extra-shared-lib" ghc-output.txt \
|
|
&& grep --quiet "no such file" ghc-output.txt; then
|
|
exit 1
|
|
fi
|
|
|
|
touch $out
|
|
'';
|
|
}
|