about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/nix-copy-closure.nix13
1 files changed, 11 insertions, 2 deletions
diff --git a/tests/nix-copy-closure.nix b/tests/nix-copy-closure.nix
index bfd708404ddd..1418c65897d3 100644
--- a/tests/nix-copy-closure.nix
+++ b/tests/nix-copy-closure.nix
@@ -4,7 +4,7 @@
 
 with import <nixpkgs/nixos/lib/testing.nix> { inherit system; };
 
-makeTest (let pkgA = pkgs.aterm; pkgB = pkgs.wget; in {
+makeTest (let pkgA = pkgs.aterm; pkgB = pkgs.wget; pkgC = pkgs.hello; in {
 
   nodes =
     { client =
@@ -12,13 +12,14 @@ makeTest (let pkgA = pkgs.aterm; pkgB = pkgs.wget; in {
         { virtualisation.writableStore = true;
           virtualisation.pathsInNixDB = [ pkgA ];
           nix.package = nix;
+          nix.binaryCaches = [ ];
         };
 
       server =
         { config, pkgs, ... }:
         { services.openssh.enable = true;
           virtualisation.writableStore = true;
-          virtualisation.pathsInNixDB = [ pkgB ];
+          virtualisation.pathsInNixDB = [ pkgB pkgC ];
           nix.package = nix;
         };
     };
@@ -49,6 +50,14 @@ makeTest (let pkgA = pkgs.aterm; pkgB = pkgs.wget; in {
       $client->fail("nix-store --check-validity ${pkgB}");
       $client->succeed("nix-copy-closure --from server --gzip ${pkgB} >&2");
       $client->succeed("nix-store --check-validity ${pkgB}");
+
+      # Copy the closure of package C via the SSH substituter.
+      $client->fail("nix-store -r ${pkgC}");
+      $client->succeed(
+        "nix-store --option use-ssh-substituter true"
+        . " --option ssh-substituter-hosts root\@server"
+        . " -r ${pkgC} >&2");
+      $client->succeed("nix-store --check-validity ${pkgC}");
     '';
 
 })