2
0
Fork 0
genodepkgs/tests/posix.dhall

100 lines
4.0 KiB
Plaintext

-- SPDX-License-Identifier: CC0-1.0
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
let Genode = Test.Genode
let Prelude = Genode.Prelude
let XML = Prelude.XML
let Child = Genode.Init.Child
let toChild =
λ(binary : Text)
→ λ(args : List Text)
→ { mapKey = binary
, mapValue =
Child.flat
Child.Attributes::{
, binary = binary
, exitPropagate = True
, resources = Genode.Init.Resources::{
, caps = 256
, ram = Genode.units.MiB 4
}
, config = Genode.Init.Config::{
, content =
[ Prelude.XML.text
''
<libc stdin="/dev/null" stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/>
<vfs>
<dir name="dev"> <log/> <null/> <rtc/> </dir>
<dir name="testdir">
<inline name="testfile">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.
Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam
varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus
magna felis sollicitudin mauris. Integer in mauris eu nibh euismod
gravida. Duis ac tellus et risus vulputate vehicula. Donec lobortis
risus a elit. Etiam tempor. Ut ullamcorper, ligula eu tempor congue,
eros est euismod turpis, id tincidunt sapien risus a quam. Maecenas
fermentum consequat mi. Donec fermentum. Pellentesque malesuada nulla a
mi. Duis sapien sem, aliquet nec, commodo eget, consequat quis, neque.
Aliquam faucibus, elit ut dictum aliquet, felis nisl adipiscing sapien,
sed malesuada diam lacus eget erat. Cras mollis scelerisque nunc. Nullam
arcu. Aliquam consequat. Curabitur augue lorem, dapibus quis, laoreet
et, pretium ac, nisi. Aenean magna nisl, mollis quis, molestie eu,
feugiat in, orci. In hac habitasse platea dictumst.
</inline>
</dir>
<dir name="tmp"><ram/></dir>
</vfs>
''
]
# Prelude.List.map
Text
XML.Type
( λ(x : Text)
→ XML.leaf
{ name = "arg", attributes = toMap { value = x } }
)
([ binary ] # args)
}
}
}
let f = λ(binary : Text) → toChild binary ([] : List Text)
let g = toChild
in Test::{
, children =
[ g "hello" [ "--version" ]
, g "b2sum" [ "testdir/testfile" ]
, f "date"
, f "dir"
, f "env"
, g "factor" [ "1337" ]
, g "head" [ "-n", "4", "testdir/testfile" ]
, f "id"
, g "ln" [ "-sv", "testdir/testfile", "tmp/testfile" ]
, g "ls" [ "-l", "-a", "-R" ]
, f "mktemp"
, f "mktemp"
, f "mktemp"
, f "pwd"
, g "seq" [ "3" ]
, g "tail" [ "-n", "4", "testdir/testfile" ]
, g "wc" [ "testdir/testfile" ]
, f "whoami"
]
}