haskell.nix/test/index-state/default.nix
2022-07-31 21:41:50 +12:00

51 lines
1.5 KiB
Nix

# Test a package set
{ stdenv, lib, testSrc, tool, compiler-nix-name, evalPackages }:
with lib;
let
# The hackage-security 0.6.0.1 was uploaded at 2020-04-06T20:54:35Z
# See https://hackage.haskell.org/package/hackage-security-0.6.0.1
version-used-at = index-state: ((tool compiler-nix-name "cabal" {
version = "3.2.0.0";
inherit index-state evalPackages;
cabalProject = ''
packages: .
allow-newer: cabal-install:base, hackage-security:*
package cabal-install
flags: -native-dns
'';
}).project.getPackage "hackage-security").components.library.version;
version-before = version-used-at "2020-04-06T20:54:34Z";
version-after = version-used-at "2020-04-06T20:54:35Z";
in
stdenv.mkDerivation {
name = "index-state-test";
buildCommand = ''
if [[ "${version-before}" != "0.6.0.0" ]]; then
echo 'Unexpected version ${version-before} (expected "0.6.0.0")'
exit 1
fi
if [[ "${version-after}" != "0.6.0.1" ]]; then
echo 'Unexpected version ${version-after} (expected "0.6.0.1")'
exit 1
fi
touch $out
'';
meta.platforms = platforms.all;
# This test will need to be updated to use newer hackage index-state for it
# to work with GHC 9 and above.
# Does not work for GHCJS
meta.disabled = stdenv.hostPlatform.isGhcjs || __elem compiler-nix-name ["ghc901" "ghc902" "ghc921" "ghc922" "ghc923" "ghc924"];
passthru = {
# Used for debugging with nix repl
inherit project packages;
};
}