about summary refs log tree commit diff
path: root/nixos/tests
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2018-02-01 10:35:13 +0000
committerGitHub <noreply@github.com>2018-02-01 10:35:13 +0000
commit57d72d41407c665eca776f783f1b35641dd030bd (patch)
tree06f0b602adeb50aff68b5a2f7c3cd4762dc0e2d7 /nixos/tests
parent480e3f343a058fdc8c618d0ffb1dda2b7b06ad23 (diff)
parente28ecd55285aa1d08b46c57396c21b85c428d083 (diff)
downloadnixlib-57d72d41407c665eca776f783f1b35641dd030bd.tar
nixlib-57d72d41407c665eca776f783f1b35641dd030bd.tar.gz
nixlib-57d72d41407c665eca776f783f1b35641dd030bd.tar.bz2
nixlib-57d72d41407c665eca776f783f1b35641dd030bd.tar.lz
nixlib-57d72d41407c665eca776f783f1b35641dd030bd.tar.xz
nixlib-57d72d41407c665eca776f783f1b35641dd030bd.tar.zst
nixlib-57d72d41407c665eca776f783f1b35641dd030bd.zip
Merge pull request #34442 from rnhmjoj/virtual
Fix virtualType for network-interfaces-scripted
Diffstat (limited to 'nixos/tests')
-rw-r--r--nixos/tests/networking.nix43
1 files changed, 43 insertions, 0 deletions
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index 7708775f73f3..182328b32962 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -433,6 +433,49 @@ let
           $client2->succeed("ip addr show dev vlan >&2");
         '';
     };
+    virtual = {
+      name = "Virtual";
+      machine = {
+        networking.interfaces."tap0" = {
+          ip4 = [ { address = "192.168.1.1"; prefixLength = 24; } ];
+          ip6 = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ];
+          virtual = true;
+        };
+        networking.interfaces."tun0" = {
+          ip4 = [ { address = "192.168.1.2"; prefixLength = 24; } ];
+          ip6 = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ];
+          virtual = true;
+        };
+      };
+
+      testScript = ''
+        my $targetList = <<'END';
+        tap0: tap UNKNOWN_FLAGS:800 user 0
+        tun0: tun UNKNOWN_FLAGS:800 user 0
+        END
+
+        # Wait for networking to come up
+        $machine->start;
+        $machine->waitForUnit("network.target");
+
+        # Test interfaces set up
+        my $list = $machine->succeed("ip tuntap list | sort");
+        "$list" eq "$targetList" or die(
+          "The list of virtual interfaces does not match the expected one:\n",
+          "Result:\n", "$list\n",
+          "Expected:\n", "$targetList\n"
+        );
+
+        # Test interfaces clean up
+        $machine->succeed("systemctl stop network-addresses-tap0");
+        $machine->succeed("systemctl stop network-addresses-tun0");
+        my $residue = $machine->succeed("ip tuntap list");
+        $residue eq "" or die(
+          "Some virtual interface has not been properly cleaned:\n",
+          "$residue\n"
+        );
+      '';
+    };
   };
 
 in mapAttrs (const (attrs: makeTest (attrs // {