aboutsummaryrefslogtreecommitdiff
path: root/tests/nixos/remote-builds-ssh-ng.nix
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-03-09 11:01:28 +0100
committereldritch horrors <pennae@lix.systems>2024-03-10 10:10:52 +0100
commit34fb7a7e9d92698a721862fe0ef926d69b12a8e5 (patch)
treec347f8e165f771a41040f6e9b795b1421113c99e /tests/nixos/remote-builds-ssh-ng.nix
parent609a8e0d94926cae460ed6f12f1f8a3d9f91246b (diff)
make the multi-node vm tests a bit more reliable
without these changes the tests will very repeatably (although not very reliably) wedge in our runs. the ssh command starts, opens a sessions, does something, the session closes again, but the test does not move on. adding *just* the redirect and not the unit waits is not sufficient either, it needs both. this feels like a bug in the nixos testing framework somewhere, but digging that far is not in the cards right now. Change-Id: Idab577b83a36cc4899bb5ffbb3d9adc04e83e51c
Diffstat (limited to 'tests/nixos/remote-builds-ssh-ng.nix')
-rw-r--r--tests/nixos/remote-builds-ssh-ng.nix10
1 files changed, 7 insertions, 3 deletions
diff --git a/tests/nixos/remote-builds-ssh-ng.nix b/tests/nixos/remote-builds-ssh-ng.nix
index cca4066f3..5ff471607 100644
--- a/tests/nixos/remote-builds-ssh-ng.nix
+++ b/tests/nixos/remote-builds-ssh-ng.nix
@@ -78,6 +78,11 @@ in
start_all()
+ builder.succeed("systemctl start network-online.target")
+ client.succeed("systemctl start network-online.target")
+ builder.wait_for_unit("network-online.target")
+ client.wait_for_unit("network-online.target")
+
# Create an SSH key on the client.
subprocess.run([
"${hostPkgs.openssh}/bin/ssh-keygen", "-t", "ed25519", "-f", "key", "-N", ""
@@ -87,11 +92,10 @@ in
client.succeed("chmod 600 /root/.ssh/id_ed25519")
# Install the SSH key on the builder.
- client.wait_for_unit("network.target")
builder.succeed("mkdir -p -m 700 /root/.ssh")
builder.copy_from_host("key.pub", "/root/.ssh/authorized_keys")
- builder.wait_for_unit("sshd")
- client.succeed(f"ssh -o StrictHostKeyChecking=no {builder.name} 'echo hello world'")
+ builder.wait_for_unit("sshd.service")
+ client.succeed(f"ssh -o StrictHostKeyChecking=no {builder.name} 'echo hello world' >&2")
# Perform a build
out = client.succeed("nix-build ${expr nodes.client 1} 2> build-output")