aboutsummaryrefslogtreecommitdiffstats
path: root/tests/scenarios.nix
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-12 02:33:44 +0000
committertv <tv@krebsco.de>2026-11-12 02:33:44 +0000
commitd1fe05cba1747f24fa16a51348fd0387f54897e6 (patch)
tree23ff98bd7613024bb92f146bdad0c542ec825fce /tests/scenarios.nix
parentfd1485d077c06414752a90d2aef84b09d8a4cca2 (diff)
populate flake-input: remove uploads left behind
Uploads an interrupted run left behind in .populate/flake-uploads only got removed before the same source uploaded again. Delivering a flake or flake input removes its upload directory now, and the empty .populate/flake-inputs once the last roots are gone. An edge case leaves an upload behind between two deploys.
Diffstat (limited to 'tests/scenarios.nix')
-rw-r--r--tests/scenarios.nix17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/scenarios.nix b/tests/scenarios.nix
index 6dbb84d..eb6bbec 100644
--- a/tests/scenarios.nix
+++ b/tests/scenarios.nix
@@ -956,6 +956,23 @@ assert !(krops.isLocalTarget (targets.remote "/"));
'';
};
})
+ # An upload an interrupted run left behind.
+ (s "upload-leftover" {
+ phases = [
+ {
+ sources.x.flake = { flake = "/fixtures/top"; fetchOnTarget = true; };
+ check = checkFlake { attr = "msg"; expected = "top:dep+inner,sub"; };
+ mutate = ''
+ mkdir -p "$T"/.populate/flake-uploads/x/tree
+ echo half > "$T"/.populate/flake-uploads/x/tree/half
+ '';
+ }
+ {
+ sources.x.flake = { flake = "/fixtures/top"; fetchOnTarget = true; };
+ check = checkFlake { attr = "msg"; expected = "top:dep+inner,sub"; };
+ }
+ ];
+ })
] ++ lib.optional (targetKind == "local")
# The target has the path the input is locked to.
(s "uselocal" {