cross/tests: add llvm-based tests
This commit is contained in:
parent
b86e62d30d
commit
8e25da0beb
|
@ -101,7 +101,7 @@ rec {
|
||||||
in
|
in
|
||||||
if final.parsed.kernel.name == pkgs.stdenv.hostPlatform.parsed.kernel.name &&
|
if final.parsed.kernel.name == pkgs.stdenv.hostPlatform.parsed.kernel.name &&
|
||||||
pkgs.stdenv.hostPlatform.isCompatible final
|
pkgs.stdenv.hostPlatform.isCompatible final
|
||||||
then pkgs.runtimeShell
|
then "${pkgs.runtimeShell} -c"
|
||||||
else if final.isWindows
|
else if final.isWindows
|
||||||
then "${wine}/bin/${wine-name}"
|
then "${wine}/bin/${wine-name}"
|
||||||
else if final.isLinux && pkgs.stdenv.hostPlatform.isLinux
|
else if final.isLinux && pkgs.stdenv.hostPlatform.isLinux
|
||||||
|
|
|
@ -53,10 +53,10 @@ let
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
mapMultiPlatformTest = test: lib.mapAttrs (name: system: test rec {
|
mapMultiPlatformTest = crossSystemFun: test: lib.mapAttrs (name: system: test rec {
|
||||||
crossPkgs = import pkgs.path {
|
crossPkgs = import pkgs.path {
|
||||||
localSystem = { inherit (pkgs.hostPlatform) config; };
|
localSystem = { inherit (pkgs.hostPlatform) config; };
|
||||||
crossSystem = system;
|
crossSystem = crossSystemFun system;
|
||||||
};
|
};
|
||||||
|
|
||||||
emulator = crossPkgs.hostPlatform.emulator pkgs;
|
emulator = crossPkgs.hostPlatform.emulator pkgs;
|
||||||
|
@ -71,26 +71,30 @@ let
|
||||||
} else pkg;
|
} else pkg;
|
||||||
}) testedSystems;
|
}) testedSystems;
|
||||||
|
|
||||||
in
|
tests = {
|
||||||
|
|
||||||
lib.mapAttrs (_: mapMultiPlatformTest) {
|
file = {platformFun, crossPkgs, emulator}: compareTest {
|
||||||
|
inherit emulator crossPkgs;
|
||||||
|
hostPkgs = pkgs;
|
||||||
|
exec = "/bin/file";
|
||||||
|
args = [
|
||||||
|
"${pkgs.file}/share/man/man1/file.1.gz"
|
||||||
|
"${pkgs.dejavu_fonts}/share/fonts/truetype/DejaVuMathTeXGyre.ttf"
|
||||||
|
];
|
||||||
|
pkgFun = pkgs: platformFun pkgs.file;
|
||||||
|
};
|
||||||
|
|
||||||
|
hello = {platformFun, crossPkgs, emulator}: compareTest {
|
||||||
|
inherit emulator crossPkgs;
|
||||||
|
hostPkgs = pkgs;
|
||||||
|
exec = "/bin/hello";
|
||||||
|
pkgFun = pkgs: pkgs.hello;
|
||||||
|
};
|
||||||
|
|
||||||
file = {platformFun, crossPkgs, emulator}: compareTest {
|
|
||||||
inherit emulator crossPkgs;
|
|
||||||
hostPkgs = pkgs;
|
|
||||||
exec = "/bin/file";
|
|
||||||
args = [
|
|
||||||
"${pkgs.file}/share/man/man1/file.1.gz"
|
|
||||||
"${pkgs.dejavu_fonts}/share/fonts/truetype/DejaVuMathTeXGyre.ttf"
|
|
||||||
];
|
|
||||||
pkgFun = pkgs: platformFun pkgs.file;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
hello = {platformFun, crossPkgs, emulator}: compareTest {
|
in (lib.mapAttrs (_: mapMultiPlatformTest builtins.id) tests)
|
||||||
inherit emulator crossPkgs;
|
// (lib.mapAttrs' (name: test: {
|
||||||
hostPkgs = pkgs;
|
name = "${name}-llvm";
|
||||||
exec = "/bin/hello";
|
value = mapMultiPlatformTest (system: system // {useLLVM = true;}) test;
|
||||||
pkgFun = pkgs: pkgs.hello;
|
}) tests)
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue