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
'';
}