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:
parent
7c9d690f9e
commit
57c39ecbcd
@ -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; });
|
||||
|
Loading…
x
Reference in New Issue
Block a user