aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/fixtures.sh17
-rw-r--r--tests/scenarios.nix16
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/fixtures.sh b/tests/fixtures.sh
index 9813c8f..8222b13 100755
--- a/tests/fixtures.sh
+++ b/tests/fixtures.sh
@@ -216,6 +216,23 @@ cat > /fixtures/rel/flake.nix <<'NIX'
NIX
(cd /fixtures/rel && nix flake lock && git init -q && commit rel)
+# two, c1, c2: a flake with two inputs, and two flakes to draw them from.
+mkdir /fixtures/two /fixtures/c1 /fixtures/c2
+cat > /fixtures/two/flake.nix <<NIX
+{
+ inputs.p.url = "$url/inner.tar.gz";
+ inputs.q.url = "$url/inner.tar.gz";
+ outputs = { p, q, ... }: { greeting = "two:\${p.who}+\${q.who}"; };
+}
+NIX
+(cd /fixtures/two && nix flake lock)
+cat > /fixtures/c1/flake.nix <<'NIX'
+{ outputs = _: { who = "c1"; }; }
+NIX
+cat > /fixtures/c2/flake.nix <<'NIX'
+{ outputs = _: { who = "c2"; }; }
+NIX
+
# noflake: a directory without flake.nix.
mkdir /fixtures/noflake
echo noflake > /fixtures/noflake/README
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" {