diff options
author | Will Fancher <elvishjerricco@gmail.com> | 2023-09-20 06:20:05 -0400 |
---|---|---|
committer | Will Fancher <elvishjerricco@gmail.com> | 2023-11-09 17:53:49 -0500 |
commit | 8900b027c73c389e4f3802225a790ef91e7a907f (patch) | |
tree | b6048c79a035bddbfb59ee2e481fad721143922d /nixos/tests | |
parent | 90e26586937dc2bb5bb4c1a825ee1d8682a62d94 (diff) |
nixos/tests/systemd-initrd-networkd: Use initrdBackdoor
Diffstat (limited to 'nixos/tests')
-rw-r--r-- | nixos/tests/systemd-initrd-networkd.nix | 65 |
1 files changed, 33 insertions, 32 deletions
diff --git a/nixos/tests/systemd-initrd-networkd.nix b/nixos/tests/systemd-initrd-networkd.nix index 22a5705205458..9c4ddb6e4b363 100644 --- a/nixos/tests/systemd-initrd-networkd.nix +++ b/nixos/tests/systemd-initrd-networkd.nix @@ -9,16 +9,28 @@ with import ../lib/testing-python.nix { inherit system pkgs; }; let inherit (lib.maintainers) elvishjerricco; + common = { + boot.initrd.systemd = { + enable = true; + network.wait-online.timeout = 10; + network.wait-online.anyInterface = true; + targets.network-online.requiredBy = [ "initrd.target" ]; + services.systemd-networkd-wait-online.requiredBy = + [ "network-online.target" ]; + initrdBin = [ pkgs.iproute2 pkgs.iputils pkgs.gnugrep ]; + }; + testing.initrdBackdoor = true; + boot.initrd.network.enable = true; + }; + mkFlushTest = flush: script: makeTest { name = "systemd-initrd-network-${lib.optionalString (!flush) "no-"}flush"; meta.maintainers = [ elvishjerricco ]; nodes.machine = { - boot.initrd.systemd.enable = true; - boot.initrd.network = { - enable = true; - flushBeforeStage2 = flush; - }; + imports = [ common ]; + + boot.initrd.network.flushBeforeStage2 = flush; systemd.services.check-flush = { requiredBy = ["multi-user.target"]; before = ["network-pre.target" "multi-user.target"]; @@ -31,6 +43,13 @@ let }; testScript = '' + machine.wait_for_unit("network-online.target") + machine.succeed( + "ip addr | grep 10.0.2.15", + "ping -c1 10.0.2.2", + ) + machine.switch_root() + machine.wait_for_unit("multi-user.target") ''; }; @@ -40,36 +59,18 @@ in { name = "systemd-initrd-network"; meta.maintainers = [ elvishjerricco ]; - nodes.machine = { - boot.initrd.network.enable = true; - - boot.initrd.systemd = { - enable = true; - # Enable network-online to fail the test in case of timeout - network.wait-online.timeout = 10; - network.wait-online.anyInterface = true; - targets.network-online.requiredBy = [ "initrd.target" ]; - services.systemd-networkd-wait-online.requiredBy = - [ "network-online.target" ]; - - initrdBin = [ pkgs.iproute2 pkgs.iputils pkgs.gnugrep ]; - services.check = { - requiredBy = [ "initrd.target" ]; - before = [ "initrd.target" ]; - after = [ "network-online.target" ]; - serviceConfig.Type = "oneshot"; - path = [ pkgs.iproute2 pkgs.iputils pkgs.gnugrep ]; - script = '' - ip addr | grep 10.0.2.15 || exit 1 - ping -c1 10.0.2.2 || exit 1 - ''; - }; - }; - }; + nodes.machine = common; testScript = '' - machine.wait_for_unit("multi-user.target") + machine.wait_for_unit("network-online.target") + machine.succeed( + "ip addr | grep 10.0.2.15", + "ping -c1 10.0.2.2", + ) + machine.switch_root() + # Make sure the systemd-network user was set correctly in initrd + machine.wait_for_unit("multi-user.target") machine.succeed("[ $(stat -c '%U,%G' /run/systemd/netif/links) = systemd-network,systemd-network ]") machine.succeed("ip addr show >&2") machine.succeed("ip route show >&2") |