From 434f36402118825d8e535abd1cd0105b0b1ea75d Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 8 Oct 2019 09:48:45 +0200 Subject: [PATCH] Add more Solo5 tests --- dhall/genode.nix | 4 +-- tests/default.nix | 1 + tests/solo5-ping.dhall | 54 +++++++++++++++++++++++++++++++++++++++++ tests/solo5-ping.nix | 19 +++++++++++++++ tests/solo5.dhall | 55 +++++++++++++++++++++++++++++++----------- tests/solo5.nix | 4 +-- 6 files changed, 119 insertions(+), 18 deletions(-) create mode 100644 tests/solo5-ping.dhall create mode 100644 tests/solo5-ping.nix diff --git a/dhall/genode.nix b/dhall/genode.nix index c78d86e..bc98f13 100644 --- a/dhall/genode.nix +++ b/dhall/genode.nix @@ -6,6 +6,6 @@ fetchgit { url = "https://git.sr.ht/~ehmry/dhall-genode"; - rev = "f04577c5a1eef0598cc24a04f395ff139f7c8bac"; - sha256 = "0anszk0mgajn59hr93gbp2abkc2xp34f43vgpz9cpyglfjbzkfi0"; + rev = "77191aad45296782ae570fcd852e5d017b144e50"; + sha256 = "10isqwr34szy7q1kyri1q7kgn1cjx17bzw9ks40safa7pz6wzrnz"; } diff --git a/tests/default.nix b/tests/default.nix index ae456bf..acffff7 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -9,6 +9,7 @@ let log = call ./log.nix { }; signal = call ./signal.nix { }; solo5 = call ./solo5.nix { }; + solo5-ping = call ./solo5-ping.nix { }; }; nixpkgs' = import ./../nixpkgs.nix; in { nixpkgs ? nixpkgs' }: diff --git a/tests/solo5-ping.dhall b/tests/solo5-ping.dhall new file mode 100644 index 0000000..d9d9bd1 --- /dev/null +++ b/tests/solo5-ping.dhall @@ -0,0 +1,54 @@ +let Genode = env:DHALL_GENODE + +in λ(_ : {}) + → { nic = + Genode.Init.Start.defaults + ⫽ { binary = "nic_loopback", provides = [ "Nic" ] } + , bridge = + Genode.Init.Start.defaults + ⫽ { binary = "nic_bridge" + , resources = { caps = 200, ram = Genode.units.MiB 8 } + , provides = [ "Nic" ] + , routes = [ Genode.ServiceRoute.child "Nic" "nic" ] + , config = + Genode.Prelude.XML.text + '' + + + + + '' + } + , ping_serve = + Genode.Init.Start.defaults + ⫽ { binary = "solo5-test_net" + , resources = { caps = 256, ram = Genode.units.MiB 4 } + , routes = + [ Genode.ServiceRoute.parent "Timer" + , Genode.ServiceRoute.child "Nic" "bridge" + ] + , config = + Genode.Prelude.XML.text + '' + limit + '' + } + , ping = + Genode.Init.Start.defaults + ⫽ { binary = "ping" + , resources = { caps = 128, ram = Genode.units.MiB 8 } + , routes = + [ Genode.ServiceRoute.parent "Timer" + , Genode.ServiceRoute.child "Nic" "bridge" + ] + , config = + Genode.Prelude.XML.text + '' + + '' + } + } diff --git a/tests/solo5-ping.nix b/tests/solo5-ping.nix new file mode 100644 index 0000000..8e3a2cb --- /dev/null +++ b/tests/solo5-ping.nix @@ -0,0 +1,19 @@ +{ pkgs, lib }: +with pkgs; + +rec { + name = "solo5"; + meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ehmry ]; + + testConfig = lib.renderDhallInit ./solo5-ping.dhall "{=}"; + + testScript = '' + collect_modules ${solo5.tests}/bin/solo5-test_net + collect_modules ${solo5}/lib/solo5-bindings-genode/solo5.lib.so + collect_modules ${genode.os}/bin/nic_loopback + collect_modules ${genode.os}/bin/nic_bridge + collect_modules ${genode.os}/bin/ping + + run_genode_until {child "ping" exited with exit value 0} 30 + ''; +} diff --git a/tests/solo5.dhall b/tests/solo5.dhall index 54393b7..10c7b4f 100644 --- a/tests/solo5.dhall +++ b/tests/solo5.dhall @@ -1,18 +1,45 @@ let Genode = env:DHALL_GENODE in λ(_ : {}) - → { hello = - Genode.Init.Start.defaults - ⫽ { binary = "solo5-test_hello" - , resources = { caps = 256, ram = Genode.units.MiB 16 } - , routes = [ Genode.ServiceRoute.parent "Timer" ] - , config = - Genode.Prelude.XML.text - '' - - "Hello_Solo5" - - '' - } - : Genode.Init.Start.Type + → { nic = + Genode.Init.Start.defaults + ⫽ { binary = "nic_loopback", provides = [ "Nic" ] } + , block = + Genode.Init.Start.defaults + ⫽ { binary = "ram_block" + , provides = [ "Block" ] + , resources = { caps = 96, ram = Genode.units.MiB 9 } + , config = + Genode.Prelude.XML.text + '' + + '' + } + , test = + Genode.Init.Start.defaults + ⫽ { binary = "sequence" + , resources = { caps = 256, ram = Genode.units.MiB 16 } + , routes = + [ Genode.ServiceRoute.parent "Timer" + , Genode.ServiceRoute.child "Block" "block" + , Genode.ServiceRoute.child "Nic" "nic" + ] + , config = + Genode.Prelude.XML.text + '' + + + + Hello_Solo5 + + + + + + + + + + '' + } } diff --git a/tests/solo5.nix b/tests/solo5.nix index 65a3e33..9a5115c 100644 --- a/tests/solo5.nix +++ b/tests/solo5.nix @@ -5,7 +5,7 @@ rec { name = "solo5"; meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ehmry ]; - testConfig = lib.renderDhallInit ./solo5.dhall "{=}"; + testConfig = lib.renderDhallInit ./solo5.dhall "{=}"; testScript = '' collect_modules ${solo5.tests}/bin/* @@ -14,6 +14,6 @@ rec { collect_modules ${genode.os}/bin/ram_block collect_modules ${genode.os}/bin/sequence - run_genode_until "child .* exited with exit value 0.*\n" 30 + run_genode_until "Error: stack protector check failed" 30 ''; }