1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-03-28 02:50:41 +03:00

NIX: Allow adding/overriding test configurations.

This commit is contained in:
Petr Rockai 2015-01-14 17:28:44 +01:00
parent 7c9d690f9e
commit 57c39ecbcd

View File

@ -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; });