diff options
| author | tv <tv@krebsco.de> | 2026-11-12 02:33:43 +0000 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-12 02:33:43 +0000 |
| commit | 408fcc6584ca598533a0f8c9012d60450db148a8 (patch) | |
| tree | c5681ad8830b8ee9939f2e6eb35bec210f7e8f59 /tests/scenarios.nix | |
| parent | 55f41b5f04efee81b4ab48899214bc59448af325 (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.nix | 16 |
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" { |
