sigil/tests/nim.nix

52 lines
1.3 KiB
Nix

{
name = "nim";
machine = { pkgs, ... }: {
genode.init.children.test_nim = let
testNim = with pkgs;
nimPackages.buildNimPackage {
pname = "test_nim";
inherit (nim) version;
nimDefines = [ "posix" ];
unpackPhase = ''
mkdir test
cd test
echo 'echo "Hello Nim world!"' > test_nim.nim
cat << EOF > eris_patch.nimble
backend = "cpp"
bin = @[ "test_nim"]
EOF
'';
};
in {
package = testNim;
extraInputs = with pkgs.genodePackages; [ libc stdcxx ];
configFile = builtins.toFile "nim.dhall" ''
let Sigil = env:DHALL_SIGIL
let Init = Sigil.Init
let Child = Init.Child
let Libc = Sigil.Libc
in λ(binary : Text)
Child.flat
Child.Attributes::{
, binary
, exitPropagate = True
, resources = Sigil.Init.Resources::{
, caps = 500
, ram = Sigil.units.MiB 10
}
, config = Libc.toConfig Libc.default
}
'';
};
};
testScript = ''
start_all()
machine.wait_until_serial_output("Hello Nim world!")
'';
}