aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/tests/systemd-networkd-dhcpserver.nix
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2020-05-20 01:39:43 +0200
committerKatharina Fey <kookie@spacekookie.de>2020-05-20 01:39:43 +0200
commit1849de11ec1e32e9eebb83f24d5339bea88b7ed7 (patch)
tree0aaf3cead09c2d55c67c6f6a86ad20af399797d8 /nixpkgs/nixos/tests/systemd-networkd-dhcpserver.nix
parent304c06d7a7ea3f5c84031d325ece8d38b8c1d829 (diff)
parent0f5ce2fac0c726036ca69a5524c59a49e2973dd4 (diff)
Merge commit '0f5ce2fac0c726036ca69a5524c59a49e2973dd4'
Diffstat (limited to 'nixpkgs/nixos/tests/systemd-networkd-dhcpserver.nix')
-rw-r--r--nixpkgs/nixos/tests/systemd-networkd-dhcpserver.nix58
1 files changed, 58 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/systemd-networkd-dhcpserver.nix b/nixpkgs/nixos/tests/systemd-networkd-dhcpserver.nix
new file mode 100644
index 00000000000..f1a2662f8cb
--- /dev/null
+++ b/nixpkgs/nixos/tests/systemd-networkd-dhcpserver.nix
@@ -0,0 +1,58 @@
+# This test predominantly tests systemd-networkd DHCP server, by
+# setting up a DHCP server and client, and ensuring they are mutually
+# reachable via the DHCP allocated address.
+import ./make-test-python.nix ({pkgs, ...}: {
+ name = "systemd-networkd-dhcpserver";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ tomfitzhenry ];
+ };
+ nodes = {
+ router = { config, pkgs, ... }: {
+ virtualisation.vlans = [ 1 ];
+ systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
+ networking = {
+ useNetworkd = true;
+ useDHCP = false;
+ firewall.enable = false;
+ };
+ systemd.network = {
+ networks = {
+ # systemd-networkd will load the first network unit file
+ # that matches, ordered lexiographically by filename.
+ # /etc/systemd/network/{40-eth1,99-main}.network already
+ # exists. This network unit must be loaded for the test,
+ # however, hence why this network is named such.
+ "01-eth1" = {
+ name = "eth1";
+ networkConfig = {
+ DHCPServer = true;
+ Address = "10.0.0.1/24";
+ };
+ dhcpServerConfig = {
+ PoolOffset = 100;
+ PoolSize = 1;
+ };
+ };
+ };
+ };
+ };
+
+ client = { config, pkgs, ... }: {
+ virtualisation.vlans = [ 1 ];
+ systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
+ networking = {
+ useNetworkd = true;
+ useDHCP = false;
+ firewall.enable = false;
+ interfaces.eth1.useDHCP = true;
+ };
+ };
+ };
+ testScript = { ... }: ''
+ start_all()
+ router.wait_for_unit("systemd-networkd-wait-online.service")
+ client.wait_for_unit("systemd-networkd-wait-online.service")
+ client.wait_until_succeeds("ping -c 5 10.0.0.1")
+ router.wait_until_succeeds("ping -c 5 10.0.0.100")
+ '';
+})