Source file functoria_test.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
open Functoria
open Action.Syntax
let prelude i =
Action.with_output ~path:(Info.main i) ~purpose:"init tests" @@ fun ppf ->
Fmt.pf ppf
{|(* Geneated by functoria_test *)
let (>>=) x f = f x
let return x = x
let run x = x
|}
let run ?(keys = []) ?init context device =
let t = Impl.abstract device in
let keys = keys @ Key.Set.elements (Engine.all_keys t) in
let packages = Key.eval context (Engine.packages t) in
let info =
Functoria.Info.v ~packages ~context ~keys ~build_cmd:[ "build"; "me" ]
~src:`None "foo"
in
let t = Impl.eval ~context t in
let* () = prelude info in
let* () = Engine.configure info t in
Engine.connect ?init info t