2020-06-20 18:41:52 +02:00
|
|
|
{ self, localSystem, legacyPackages }:
|
|
|
|
|
|
|
|
import "${self.inputs.nixpkgs}/nixos/tests/make-test-python.nix"
|
|
|
|
({ pkgs, ... }: {
|
|
|
|
name = "genode-guest";
|
|
|
|
# meta.maintainers = [ pkgs.lib.maintainers.ehmry ];
|
|
|
|
|
|
|
|
machine = {
|
2020-06-21 20:21:39 +02:00
|
|
|
|
2020-06-21 13:46:17 +02:00
|
|
|
imports = [
|
|
|
|
self.nixosModules.genodeGuests
|
|
|
|
"${self.inputs.nixpkgs}/nixos/modules/profiles/minimal.nix"
|
|
|
|
];
|
2020-06-21 20:21:39 +02:00
|
|
|
|
|
|
|
networking.bridges.br0.interfaces = [ "eth0" "tap0" ];
|
|
|
|
|
|
|
|
networking.interfaces.eth0.useDHCP = false;
|
|
|
|
|
|
|
|
networking.interfaces.tap0 = {
|
|
|
|
useDHCP = false;
|
|
|
|
virtual = true;
|
|
|
|
virtualType = "tap";
|
|
|
|
};
|
|
|
|
|
|
|
|
genodeGuests.tap-test = {
|
2020-06-20 18:41:52 +02:00
|
|
|
config = ''
|
2020-06-21 20:21:39 +02:00
|
|
|
let Genode = env:DHALL_GENODE
|
|
|
|
|
|
|
|
let Prelude = Genode.Prelude
|
|
|
|
|
|
|
|
let XML = Prelude.XML
|
|
|
|
|
|
|
|
let Init = Genode.Init
|
|
|
|
|
|
|
|
in Init::{
|
|
|
|
, children = toMap
|
|
|
|
{ lwip_fs =
|
|
|
|
Init.Child.flat
|
|
|
|
Init.Child.Attributes::{
|
|
|
|
, binary = "vfs"
|
|
|
|
, config = Init.Config::{
|
|
|
|
, content =
|
|
|
|
[ XML.element
|
|
|
|
{ name = "vfs"
|
|
|
|
, attributes = XML.emptyAttributes
|
|
|
|
, content =
|
|
|
|
[ XML.leaf
|
|
|
|
{ name = "lwip"
|
|
|
|
, attributes = toMap { dhcp = "yes" }
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
, provides = [ "File_system" ]
|
|
|
|
, resources = Init.Resources::{
|
|
|
|
, caps = 256
|
|
|
|
, ram = Genode.units.MiB 8
|
|
|
|
}
|
|
|
|
, routes =
|
|
|
|
[ Init.ServiceRoute.parentLabel "Nic" (None Text) (Some "tap0")
|
|
|
|
, Init.ServiceRoute.parent "Timer"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
, verbose = True
|
|
|
|
}
|
2020-06-20 18:41:52 +02:00
|
|
|
'';
|
2020-06-21 20:21:39 +02:00
|
|
|
nics = [ "tap0" ];
|
2020-06-20 18:41:52 +02:00
|
|
|
rom = pkgs: {
|
2020-06-21 20:21:39 +02:00
|
|
|
"vfs" = "${pkgs.genodeSources.depot "vfs"}/vfs";
|
|
|
|
"libvfs.so" = "${(pkgs.genodeSources.depot "vfs").lib}/lib/libvfs.so";
|
|
|
|
"libvfs_lwip.so" =
|
|
|
|
"${pkgs.genodeSources.depot "vfs_lwip"}/lib/libvfs_lwip.so";
|
2020-06-20 18:41:52 +02:00
|
|
|
};
|
|
|
|
};
|
2020-06-21 20:21:39 +02:00
|
|
|
|
2020-06-20 18:41:52 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
testScript = ''
|
|
|
|
start_all()
|
2020-06-21 20:21:39 +02:00
|
|
|
machine.wait_for_unit("tap-test")
|
2020-06-20 18:41:52 +02:00
|
|
|
machine.wait_for_open_port("1965")
|
|
|
|
'';
|
2020-06-21 20:21:39 +02:00
|
|
|
}) { system = localSystem; }
|