aboutsummaryrefslogtreecommitdiffstats
path: root/tests/scenarios.nix
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-12 02:33:43 +0000
committertv <tv@krebsco.de>2026-11-12 02:33:43 +0000
commit408fcc6584ca598533a0f8c9012d60450db148a8 (patch)
treec5681ad8830b8ee9939f2e6eb35bec210f7e8f59 /tests/scenarios.nix
parent55f41b5f04efee81b4ab48899214bc59448af325 (diff)
populate: place overrides on sources with generated flakes correctly
An override below an input drawn from a source that has a generated flake itself got placed on that generated flake, which has no such input, so Nix ignored it with a warning. Generated flakes have their source as input of the same name, so the override goes below that. An edge case overrides an input of a source with a generated flake.
Diffstat (limited to 'tests/scenarios.nix')
-rw-r--r--tests/scenarios.nix16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/scenarios.nix b/tests/scenarios.nix
index 307e521..5dd44db 100644
--- a/tests/scenarios.nix
+++ b/tests/scenarios.nix
@@ -867,6 +867,22 @@ assert !(krops.isLocalTarget (targets.remote "/"));
}
];
}))
+ (s "override-generated" {
+ phases = twice {
+ sources = {
+ x.flake = {
+ flake = "/fixtures/top"; inherit fetchOnTarget;
+ inputs.dep = { follows = "b"; inputs.q.follows = "c2"; };
+ };
+ b.file = { path = "/fixtures/two"; inputs.p.follows = "c1"; };
+ c1.file = "/fixtures/c1";
+ c2.file = "/fixtures/c2";
+ };
+ check = ''
+ expect_eq msg "$(nix_eval_online "$T"/.populate/flakes/x#msg)" top:two:c1+c2,sub
+ '';
+ };
+ })
] ++ lib.optional (targetKind == "local")
# The target has the path the input is locked to.
(s "uselocal" {