tests.haskell.ghcWithPackages: init (#415638)

authored by Wolfgang Walther and committed by GitHub 167694c6 c03ff6bd

+51 -2
+3 -2
pkgs/test/haskell/default.nix
··· 1 { lib, callPackage }: 2 3 lib.recurseIntoAttrs { 4 - shellFor = callPackage ./shellFor { }; 5 cabalSdist = callPackage ./cabalSdist { }; 6 documentationTarball = callPackage ./documentationTarball { }; 7 setBuildTarget = callPackage ./setBuildTarget { }; 8 - incremental = callPackage ./incremental { }; 9 upstreamStackHpackVersion = callPackage ./upstreamStackHpackVersion { }; 10 }
··· 1 { lib, callPackage }: 2 3 lib.recurseIntoAttrs { 4 cabalSdist = callPackage ./cabalSdist { }; 5 documentationTarball = callPackage ./documentationTarball { }; 6 + ghcWithPackages = callPackage ./ghcWithPackages { }; 7 + incremental = callPackage ./incremental { }; 8 setBuildTarget = callPackage ./setBuildTarget { }; 9 + shellFor = callPackage ./shellFor { }; 10 upstreamStackHpackVersion = callPackage ./upstreamStackHpackVersion { }; 11 }
+48
pkgs/test/haskell/ghcWithPackages/default.nix
···
··· 1 + { 2 + lib, 3 + runCommand, 4 + haskellPackages, 5 + }: 6 + 7 + lib.recurseIntoAttrs { 8 + # This is special-cased to return just `ghc`. 9 + trivial = haskellPackages.ghcWithPackages (hsPkgs: [ ]); 10 + 11 + # Here we actually build a trivial package. 12 + hello = haskellPackages.ghcWithPackages (hsPkgs: [ 13 + hsPkgs.hello 14 + ]); 15 + 16 + # Here we build a database with multiple packages. 17 + multiple = haskellPackages.ghcWithPackages (hsPkgs: [ 18 + hsPkgs.hspec 19 + hsPkgs.unordered-containers 20 + ]); 21 + 22 + # See: https://github.com/NixOS/nixpkgs/pull/224542 23 + regression-224542 = 24 + runCommand "regression-224542" 25 + { 26 + buildInputs = [ 27 + (haskellPackages.ghcWithPackages (hsPkgs: [ 28 + hsPkgs.hspec 29 + ])) 30 + ]; 31 + } 32 + '' 33 + ghc --interactive \ 34 + -Werror=unrecognised-warning-flags \ 35 + -Werror=missed-extra-shared-lib \ 36 + 2>&1 \ 37 + | tee ghc-output.txt 38 + 39 + # If GHC failed to find a shared library, linking dylibs in 40 + # `ghcWithPackages` didn't work correctly. 41 + if grep --quiet "error: .*-Wmissed-extra-shared-lib" ghc-output.txt \ 42 + && grep --quiet "no such file" ghc-output.txt; then 43 + exit 1 44 + fi 45 + 46 + touch $out 47 + ''; 48 + }