···
# All interfaces are in OSPF Area 0.
8
-
import ./make-test.nix ({ pkgs, ... }:
8
+
import ./make-test-python.nix ({ pkgs, ... }:
ifAddr = node: iface: (pkgs.lib.head node.config.networking.interfaces.${iface}.ipv4.addresses).address;
···
# Wait for the networking to start on all machines
80
-
$_->waitForUnit("network.target") foreach values %vms;
80
+
for machine in client, router1, router2, server:
81
+
machine.wait_for_unit("network.target")
82
-
# Wait for OSPF to form adjacencies
83
-
for my $gw ($router1, $router2) {
84
-
$gw->waitForUnit("ospfd");
85
-
$gw->waitUntilSucceeds("vtysh -c 'show ip ospf neighbor' | grep Full");
86
-
$gw->waitUntilSucceeds("vtysh -c 'show ip route' | grep '^O>'");
83
+
with subtest("Wait for OSPF to form adjacencies"):
84
+
for gw in router1, router2:
85
+
gw.wait_for_unit("ospfd")
86
+
gw.wait_until_succeeds("vtysh -c 'show ip ospf neighbor' | grep Full")
87
+
gw.wait_until_succeeds("vtysh -c 'show ip route' | grep '^O>'")
90
-
$client->succeed("ping -c 3 server >&2");
89
+
with subtest("Test ICMP"):
90
+
client.wait_until_succeeds("ping -c 3 server >&2")
92
-
# Test whether HTTP works.
93
-
$server->waitForUnit("httpd");
94
-
$client->succeed("curl --fail http://server/ >&2");
92
+
with subtest("Test whether HTTP works"):
93
+
server.wait_for_unit("httpd")
94
+
client.succeed("curl --fail http://server/ >&2")