tests.overriding: restructure test cases utilizing non-boolean support

This commit is contained in:
Yueh-Shun Li
2025-10-30 07:04:47 +08:00
committed by Matt Sturgeon
parent 5351568405
commit ffca1c4197

View File

@@ -43,24 +43,24 @@ let
in in
{ {
repeatedOverrides-pname = { repeatedOverrides-pname = {
expr = repeatedOverrides.pname == "a-better-hello-with-blackjack"; expr = repeatedOverrides.pname;
expected = true; expected = "a-better-hello-with-blackjack";
}; };
repeatedOverrides-entangled-pname = { repeatedOverrides-entangled-pname = {
expr = repeatedOverrides.entangled.pname == "a-better-figlet-with-blackjack"; expr = repeatedOverrides.entangled.pname;
expected = true; expected = "a-better-figlet-with-blackjack";
}; };
overriding-using-only-attrset = { overriding-using-only-attrset = {
expr = (pkgs.hello.overrideAttrs { pname = "hello-overriden"; }).pname == "hello-overriden"; expr = (pkgs.hello.overrideAttrs { pname = "hello-overriden"; }).pname;
expected = true; expected = "hello-overriden";
}; };
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 = expr =
((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs { ((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs {
pname = "hello-no-final-attrs-overridden"; pname = "hello-no-final-attrs-overridden";
}).pname == "hello-no-final-attrs-overridden"; }).pname;
expected = true; expected = "hello-no-final-attrs-overridden";
}; };
}; };
@@ -118,16 +118,16 @@ let
expected = true; expected = true;
}; };
extendMkDerivation-helloLocal-plain-equivalence = { extendMkDerivation-helloLocal-plain-equivalence = {
expr = helloLocal.drvPath == helloLocalPlain.drvPath; expr = helloLocal.drvPath;
expected = true; expected = helloLocalPlain.drvPath;
}; };
extendMkDerivation-helloLocal-finalAttrs = { extendMkDerivation-helloLocal-finalAttrs = {
expr = helloLocal.bar == "ab"; expr = helloLocal.bar;
expected = true; expected = "ab";
}; };
extendMkDerivation-helloLocal-specialArg = { extendMkDerivation-helloLocal-specialArg = {
expr = hiLocal.greeting == "Hi!"; expr = hiLocal.greeting;
expected = true; expected = "Hi!";
}; };
}; };
@@ -152,27 +152,35 @@ let
in in
{ {
hash-outputHash-equivalence = { hash-outputHash-equivalence = {
expr = ruamel_0_17_21-src.outputHash == ruamel_0_17_21-hash; expr = ruamel_0_17_21-src.outputHash;
expected = true; expected = ruamel_0_17_21-hash;
}; };
hash-overridability-outputHash = { hash-overridability-outputHash = {
expr = ruamel_0_17_21-src-by-overriding.outputHash == ruamel_0_17_21-hash; expr = ruamel_0_17_21-src-by-overriding.outputHash;
expected = true; expected = ruamel_0_17_21-hash;
}; };
hash-overridability-drvPath = { hash-overridability-drvPath = {
expr = expr = [
lib.isString ruamel_0_17_21-src-by-overriding.drvPath (lib.isString ruamel_0_17_21-src-by-overriding.drvPath)
&& ruamel_0_17_21-src-by-overriding.drvPath == ruamel_0_17_21-src.drvPath; ruamel_0_17_21-src-by-overriding.drvPath
expected = true; ];
expected = [
true
ruamel_0_17_21-src.drvPath
];
}; };
hash-overridability-outPath = { hash-overridability-outPath = {
expr = expr = [
lib.isString ruamel_0_17_21-src-by-overriding.outPath (lib.isString ruamel_0_17_21-src-by-overriding.outPath)
&& ruamel_0_17_21-src-by-overriding.outPath == ruamel_0_17_21-src.outPath; ruamel_0_17_21-src-by-overriding.outPath
expected = true; ];
expected = [
true
ruamel_0_17_21-src.outPath
];
}; };
}; };
@@ -249,44 +257,32 @@ let
pet-vendored = pet-foo.overrideAttrs { vendorHash = null; }; pet-vendored = pet-foo.overrideAttrs { vendorHash = null; };
in in
{ {
buildGoModule-overrideAttrs = { buildGoModule-overrideAttrs =
expr =
lib.all
(
attrPath:
let let
attrPathPretty = lib.concatStringsSep "." attrPath; getComparingAttrs = p: {
valueNative = lib.getAttrFromPath attrPath pet_0_4_0; inherit (p)
valueOverridden = lib.getAttrFromPath attrPath pet_0_4_0-overridden; drvPath
name
pname
version
vendorHash
;
goModules = {
inherit (p.goModules)
drvPath
name
outPath
;
};
};
in in
lib.warnIfNot (valueNative == valueOverridden) {
"pet_0_4_0.${attrPathPretty} (${valueNative}) does not equal pet_0_4_0-overridden.${attrPathPretty} (${valueOverridden})" expr = getComparingAttrs pet_0_4_0-overridden;
true expected = getComparingAttrs pet_0_4_0;
)
[
[ "drvPath" ]
[ "name" ]
[ "pname" ]
[ "version" ]
[ "vendorHash" ]
[
"goModules"
"drvPath"
]
[
"goModules"
"name"
]
[
"goModules"
"outputHash"
]
];
expected = true;
}; };
buildGoModule-goModules-overrideAttrs = { buildGoModule-goModules-overrideAttrs = {
expr = pet-foo.goModules.FOO == "foo"; expr = pet-foo.goModules.FOO;
expected = true; expected = "foo";
}; };
buildGoModule-goModules-overrideAttrs-vendored = { buildGoModule-goModules-overrideAttrs-vendored = {
expr = lib.isString pet-vendored.drvPath; expr = lib.isString pet-vendored.drvPath;