release-cross: Test for unchanged native derivations
These derivations do not care about the target platform, and thus should not be affected by cross-compiling. Currently, these tests *fail*, but they will be fixed soon by a latter PR. The release-cross job doesn't block a channel, so this should be no problem.
This commit is contained in:
parent
916012121c
commit
1d0e91831b
@ -1,5 +1,7 @@
|
|||||||
with import ./release-lib.nix { supportedSystems = [ builtins.currentSystem ]; };
|
with import ./release-lib.nix { supportedSystems = [ builtins.currentSystem ]; };
|
||||||
let
|
let
|
||||||
|
lib = import ../../lib;
|
||||||
|
|
||||||
nativePlatforms = linux;
|
nativePlatforms = linux;
|
||||||
|
|
||||||
/* Basic list of packages to cross-build */
|
/* Basic list of packages to cross-build */
|
||||||
@ -22,6 +24,40 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
# These `nativeDrv`s should be identical to their vanilla ones --- cross
|
||||||
|
# compiling should not affect the native derivation.
|
||||||
|
ensureUnaffected = let
|
||||||
|
# Absurd values are fine here, as we are not building anything. In fact,
|
||||||
|
# there probably a good idea to try to be "more parametric" --- i.e. avoid
|
||||||
|
# any special casing.
|
||||||
|
crossSystem = {
|
||||||
|
config = "foosys";
|
||||||
|
libc = "foolibc";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Converting to a string (drv path) before checking equality is probably a
|
||||||
|
# good idea lest there be some irrelevant pass-through debug attrs that
|
||||||
|
# cause false negatives.
|
||||||
|
testEqualOne = path: system: let
|
||||||
|
f = attrs: builtins.toString (lib.getAttrFromPath path (allPackages attrs));
|
||||||
|
in assert f { inherit system; } == f { inherit system crossSystem; }; true;
|
||||||
|
|
||||||
|
testEqual = path: systems: forAllSupportedSystems systems (testEqualOne path);
|
||||||
|
|
||||||
|
mapTestEqual = lib.mapAttrsRecursive testEqual;
|
||||||
|
|
||||||
|
in mapTestEqual {
|
||||||
|
boehmgc = nativePlatforms;
|
||||||
|
libffi = nativePlatforms;
|
||||||
|
libiconv = nativePlatforms;
|
||||||
|
libtool = nativePlatforms;
|
||||||
|
zlib = nativePlatforms;
|
||||||
|
readline = nativePlatforms;
|
||||||
|
libxml2 = nativePlatforms;
|
||||||
|
guile = nativePlatforms;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/* Test some cross builds to the Sheevaplug */
|
/* Test some cross builds to the Sheevaplug */
|
||||||
crossSheevaplugLinux = let
|
crossSheevaplugLinux = let
|
||||||
crossSystem = {
|
crossSystem = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user