From 1dad7fa174417fb1b06086cc2e8d68be88279298 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 10 Nov 2020 16:39:34 +0100 Subject: [PATCH] tests: add simple networking test Just a test that pings one machine from another. --- tests/default.nix | 1 + tests/networking.nix | 45 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 tests/networking.nix diff --git a/tests/default.nix b/tests/default.nix index a26b11d..e8c48d6 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -11,6 +11,7 @@ let ./bash.nix ./hello.nix ./log.nix + ./networking.nix ./solo5/multi.nix ./vmm_x86.nix ./x86.nix diff --git a/tests/networking.nix b/tests/networking.nix new file mode 100644 index 0000000..b3a47f3 --- /dev/null +++ b/tests/networking.nix @@ -0,0 +1,45 @@ +{ + name = "networking"; + nodes = { + + a = { pkgs, ... }: { imports = [ ../nixos-modules/hardware.nix ]; }; + + b = { config, pkgs, ... }: { + imports = [ ../nixos-modules/hardware.nix ]; + networking.interfaces.eth1.genode.stack = null; + genode.init.children.ping = { + inputs = with pkgs.genodePackages; [ ping ]; + configFile = let + ip = builtins.head config.networking.interfaces.eth1.ipv4.addresses; + in pkgs.writeText "ping.dhall" '' + let Genode = env:DHALL_GENODE + + let Init = Genode.Init + + let Child = Init.Child + + in Child.flat + Child.Attributes::{ + , binary = "ping" + , resources = Init.Resources::{ ram = Genode.units.MiB 8 } + , routes = [ Init.ServiceRoute.child "Nic" "eth1.driver" ] + , config = Init.Config::{ + , attributes = toMap + { interface = "${ip.address}/${toString ip.prefixLength}" + , dst_ip = "192.168.1.1" + , period_sec = "1" + , count = "10" + , verbose = "yes" + } + } + } + ''; + }; + }; + + }; + testScript = '' + start_all() + b.wait_until_serial_output('child "ping" exited with exit value 0') + ''; +}