tests.overriding: format with nixfmt-rfc-style
This commit is contained in:
parent
84fabf86de
commit
662cf493f0
@ -1,9 +1,15 @@
|
|||||||
{ lib, pkgs, stdenvNoCC }:
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
stdenvNoCC,
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
tests =
|
tests =
|
||||||
let
|
let
|
||||||
p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: { dontWrapPythonPrograms = true; });
|
p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: {
|
||||||
|
dontWrapPythonPrograms = true;
|
||||||
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
overridePythonAttrs = {
|
overridePythonAttrs = {
|
||||||
@ -24,31 +30,45 @@ let
|
|||||||
};
|
};
|
||||||
overriding-using-only-attrset-no-final-attrs = {
|
overriding-using-only-attrset-no-final-attrs = {
|
||||||
name = "overriding-using-only-attrset-no-final-attrs";
|
name = "overriding-using-only-attrset-no-final-attrs";
|
||||||
expr = ((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs { pname = "hello-no-final-attrs-overridden"; }).pname == "hello-no-final-attrs-overridden";
|
expr =
|
||||||
|
((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs {
|
||||||
|
pname = "hello-no-final-attrs-overridden";
|
||||||
|
}).pname == "hello-no-final-attrs-overridden";
|
||||||
expected = true;
|
expected = true;
|
||||||
};
|
};
|
||||||
buildGoModule-overrideAttrs = {
|
buildGoModule-overrideAttrs = {
|
||||||
expr = lib.all (
|
expr =
|
||||||
attrPath:
|
lib.all
|
||||||
let
|
(
|
||||||
attrPathPretty = lib.concatStringsSep "." attrPath;
|
attrPath:
|
||||||
valueNative = lib.getAttrFromPath attrPath pet_0_4_0;
|
let
|
||||||
valueOverridden = lib.getAttrFromPath attrPath pet_0_4_0-overridden;
|
attrPathPretty = lib.concatStringsSep "." attrPath;
|
||||||
in
|
valueNative = lib.getAttrFromPath attrPath pet_0_4_0;
|
||||||
lib.warnIfNot
|
valueOverridden = lib.getAttrFromPath attrPath pet_0_4_0-overridden;
|
||||||
(valueNative == valueOverridden)
|
in
|
||||||
"pet_0_4_0.${attrPathPretty} (${valueNative}) does not equal pet_0_4_0-overridden.${attrPathPretty} (${valueOverridden})"
|
lib.warnIfNot (valueNative == valueOverridden)
|
||||||
true
|
"pet_0_4_0.${attrPathPretty} (${valueNative}) does not equal pet_0_4_0-overridden.${attrPathPretty} (${valueOverridden})"
|
||||||
) [
|
true
|
||||||
[ "drvPath" ]
|
)
|
||||||
[ "name" ]
|
[
|
||||||
[ "pname" ]
|
[ "drvPath" ]
|
||||||
[ "version" ]
|
[ "name" ]
|
||||||
[ "vendorHash" ]
|
[ "pname" ]
|
||||||
[ "goModules" "drvPath" ]
|
[ "version" ]
|
||||||
[ "goModules" "name" ]
|
[ "vendorHash" ]
|
||||||
[ "goModules" "outputHash" ]
|
[
|
||||||
];
|
"goModules"
|
||||||
|
"drvPath"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"goModules"
|
||||||
|
"name"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"goModules"
|
||||||
|
"outputHash"
|
||||||
|
]
|
||||||
|
];
|
||||||
expected = true;
|
expected = true;
|
||||||
};
|
};
|
||||||
buildGoModule-goModules-overrideAttrs = {
|
buildGoModule-goModules-overrideAttrs = {
|
||||||
@ -61,28 +81,37 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
addEntangled = origOverrideAttrs: f:
|
addEntangled =
|
||||||
|
origOverrideAttrs: f:
|
||||||
origOverrideAttrs (
|
origOverrideAttrs (
|
||||||
lib.composeExtensions f (self: super: {
|
lib.composeExtensions f (
|
||||||
passthru = super.passthru // {
|
self: super: {
|
||||||
entangled = super.passthru.entangled.overrideAttrs f;
|
passthru = super.passthru // {
|
||||||
overrideAttrs = addEntangled self.overrideAttrs;
|
entangled = super.passthru.entangled.overrideAttrs f;
|
||||||
};
|
overrideAttrs = addEntangled self.overrideAttrs;
|
||||||
})
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
entangle = pkg1: pkg2: pkg1.overrideAttrs (self: super: {
|
entangle =
|
||||||
passthru = super.passthru // {
|
pkg1: pkg2:
|
||||||
entangled = pkg2;
|
pkg1.overrideAttrs (
|
||||||
overrideAttrs = addEntangled self.overrideAttrs;
|
self: super: {
|
||||||
};
|
passthru = super.passthru // {
|
||||||
});
|
entangled = pkg2;
|
||||||
|
overrideAttrs = addEntangled self.overrideAttrs;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
example = entangle pkgs.hello pkgs.figlet;
|
example = entangle pkgs.hello pkgs.figlet;
|
||||||
|
|
||||||
overrides1 = example.overrideAttrs (_: super: { pname = "a-better-${super.pname}"; });
|
overrides1 = example.overrideAttrs (_: super: { pname = "a-better-${super.pname}"; });
|
||||||
|
|
||||||
repeatedOverrides = overrides1.overrideAttrs (_: super: { pname = "${super.pname}-with-blackjack"; });
|
repeatedOverrides = overrides1.overrideAttrs (
|
||||||
|
_: super: { pname = "${super.pname}-with-blackjack"; }
|
||||||
|
);
|
||||||
|
|
||||||
pet_0_3_4 = pkgs.buildGoModule rec {
|
pet_0_3_4 = pkgs.buildGoModule rec {
|
||||||
pname = "pet";
|
pname = "pet";
|
||||||
@ -126,17 +155,19 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
pet_0_4_0-overridden = pet_0_3_4.overrideAttrs (finalAttrs: previousAttrs: {
|
pet_0_4_0-overridden = pet_0_3_4.overrideAttrs (
|
||||||
version = "0.4.0";
|
finalAttrs: previousAttrs: {
|
||||||
|
version = "0.4.0";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
inherit (previousAttrs.src) owner repo;
|
inherit (previousAttrs.src) owner repo;
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-gVTpzmXekQxGMucDKskGi+e+34nJwwsXwvQTjRO6Gdg=";
|
hash = "sha256-gVTpzmXekQxGMucDKskGi+e+34nJwwsXwvQTjRO6Gdg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-dUvp7FEW09V0xMuhewPGw3TuAic/sD7xyXEYviZ2Ivs=";
|
vendorHash = "sha256-dUvp7FEW09V0xMuhewPGw3TuAic/sD7xyXEYviZ2Ivs=";
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
pet-foo = pet_0_3_4.overrideAttrs (
|
pet-foo = pet_0_3_4.overrideAttrs (
|
||||||
finalAttrs: previousAttrs: {
|
finalAttrs: previousAttrs: {
|
||||||
@ -156,7 +187,12 @@ in
|
|||||||
stdenvNoCC.mkDerivation {
|
stdenvNoCC.mkDerivation {
|
||||||
name = "test-overriding";
|
name = "test-overriding";
|
||||||
passthru = { inherit tests; };
|
passthru = { inherit tests; };
|
||||||
buildCommand = ''
|
buildCommand =
|
||||||
touch $out
|
''
|
||||||
'' + lib.concatMapAttrsStringSep "\n" (name: t: "([[ ${lib.boolToString t.expr} == ${lib.boolToString t.expected} ]] && echo '${name} success') || (echo '${name} fail' && exit 1)") tests;
|
touch $out
|
||||||
|
''
|
||||||
|
+ lib.concatMapAttrsStringSep "\n" (
|
||||||
|
name: t:
|
||||||
|
"([[ ${lib.boolToString t.expr} == ${lib.boolToString t.expected} ]] && echo '${name} success') || (echo '${name} fail' && exit 1)"
|
||||||
|
) tests;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user