You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
4.0 KiB
Plaintext
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"
|
|
]
|
|
}
|