diff options
author | Petr Rockai <prockai@redhat.com> | 2015-01-14 17:28:44 +0100 |
---|---|---|
committer | Petr Rockai <prockai@redhat.com> | 2015-02-05 13:51:07 +0100 |
commit | 57c39ecbcd6b97643f99427dfe426cc20c1acd66 (patch) | |
tree | e15d2d1d42a55cd8afb4334402220360bb9619c5 /nix | |
parent | 7c9d690f9e5a5490d7288441a813180eff2e20a2 (diff) | |
download | lvm2-57c39ecbcd6b97643f99427dfe426cc20c1acd66.tar.gz |
NIX: Allow adding/overriding test configurations.
Diffstat (limited to 'nix')
-rw-r--r-- | nix/default.nix | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/nix/default.nix b/nix/default.nix index 4193354fd..cd92b910a 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -4,11 +4,13 @@ fc20_32_updates ? "", fc20_64_updates ? "", fc19_32_updates ? "", fc19_64_updates ? "", fc18_32_updates ? "", fc18_64_updates ? "", - T ? "", ENV ? "", timeout ? 60 }: + T ? "", ENV ? "", timeout ? 60, + overrides ? { pkgs }: { install_rpms = {}; distros = {}; configs = {}; } }: let pkgs = import nixpkgs {}; lib = pkgs.lib; + over = overrides { inherit pkgs; }; mkTest = args: pkgs.stdenv.mkDerivation rec { name = "lvm2-test-${(args.diskFun {}).name}"; @@ -189,7 +191,8 @@ let then "ftp://ftp.fi.muni.cz/pub/linux/fedora/linux/development/${ver}/${arch}/os/" else "mirror://fedora/linux/releases/${ver}/Everything/${arch}/os/"; fedora_update_url = ver: arch: "mirror://fedora/linux/updates/${ver}/${arch}"; - extra_distros = with lib; let + + distros = with lib; let centos = { version, sha, arch }: { name = "centos-${version}-${arch}"; fullName = "CentOS ${version} (${arch})"; @@ -273,7 +276,7 @@ let version="7"; arch="x86_64"; sha="1a7dd0d315b39ad504f54ea88676ab502a48064cb2d875ae3ae29431e175861c"; }; - }; + } // over.distros; vm = { pkgs, xmods, dmmods ? false }: with lib; rec { tools = import "${nixpkgs}/pkgs/build-support/vm/default.nix" { @@ -283,12 +286,12 @@ let release = import "${nixpkgs}/pkgs/build-support/release/default.nix" { pkgs = pkgs // { vmTools = tools; }; }; imgs = tools.diskImageFuns // - mapAttrs (n: a: b: pkgs.vmTools.makeImageFromRPMDist (a // b)) extra_distros; - rpmdistros = tools.rpmDistros // extra_distros; + mapAttrs (n: a: b: pkgs.vmTools.makeImageFromRPMDist (a // b)) distros; + rpmdistros = tools.rpmDistros // distros; rpmbuild = tools.buildRPM; }; - extra_rpms = rec { + install_rpms = rec { common = [ "libselinux-devel" "libsepol-devel" "ncurses-devel" "readline-devel" "corosynclib-devel" "valgrind" "valgrind-devel" "gdb" "strace" @@ -316,7 +319,7 @@ let centos70 = fedora20; rawhide = fedora20; - }; + } // over.install_rpms; wrapper = fun: { arch, image, build ? {}, istest ? false }: with lib; let use = vm { pkgs = if eqStrings arch "i386" then pkgs.pkgsi686Linux else pkgs; @@ -327,7 +330,7 @@ let inherit build istest; VM = use.rpmbuild; diskFun = builtins.getAttr "${image}${arch}" use.imgs; - extras = extra_rpms.common ++ builtins.getAttr image extra_rpms; + extras = install_rpms.common ++ builtins.getAttr image install_rpms; vmtools = use.tools; kernel = use.tools.makeKernelFromRPMDist (builtins.getAttr "${image}${arch}" use.rpmdistros); }; @@ -360,7 +363,7 @@ let rawhide_i386 = { arch = "i386" ; image = "rawhide"; }; rawhide_x86_64 = { arch = "x86_64" ; image = "rawhide"; }; - }; + } // over.configs; rpms = lib.mapAttrs (n: v: wrapper mkBuild v) configs; tests = let make = n: v: wrapper mkTest (v // { build = builtins.getAttr n rpms; istest = true; }); |