This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
3
unikernel/duniverse/mirage/test/functoria/e2e/lib/dune
Normal file
3
unikernel/duniverse/mirage/test/functoria/e2e/lib/dune
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
(library
|
||||
(name e2e)
|
||||
(libraries mirage.functoria))
|
||||
78
unikernel/duniverse/mirage/test/functoria/e2e/lib/e2e.ml
Normal file
78
unikernel/duniverse/mirage/test/functoria/e2e/lib/e2e.ml
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
open Functoria
|
||||
open Cmdliner
|
||||
module Key = Key
|
||||
|
||||
let docs = "APPLICATION OPTIONS"
|
||||
|
||||
let warn_error =
|
||||
let doc = "Enable -warn-error when compiling OCaml sources." in
|
||||
let doc = Arg.info ~docv:"BOOL" ~doc ~docs [ "warn-error" ] in
|
||||
let key = Key.Arg.opt Arg.bool false doc in
|
||||
Key.create "warn_error" key
|
||||
|
||||
let vote =
|
||||
let doc = "Vote." in
|
||||
let doc = Arg.info ~docv:"VOTE" ~doc ~docs [ "vote" ] in
|
||||
let key = Key.Arg.opt Arg.string "cat" doc in
|
||||
Key.create "vote" key
|
||||
|
||||
let file_of_key k = Fpath.v Key.(name @@ v k)
|
||||
|
||||
let write_key i k f =
|
||||
let context = Info.context i in
|
||||
let file = file_of_key k in
|
||||
let contents = f (Key.get context k) in
|
||||
Action.write_file file contents
|
||||
|
||||
module C = struct
|
||||
open Action.Syntax
|
||||
|
||||
let prelude _ =
|
||||
"let (>>=) x f = f x\ntype 'a io = 'a\nlet return x = x\nlet run x = x"
|
||||
|
||||
let name = "test"
|
||||
let version = "1.0~test"
|
||||
let packages = [ package ~sublibs:[ "functoria" ] "mirage"; package "e2e" ]
|
||||
let keys = Key.[ v vote; v warn_error ]
|
||||
let connect _ _ _ = code ~pos:__POS__ "()"
|
||||
let main i = Fpath.(basename @@ rem_ext @@ Info.main i)
|
||||
let config i = Fpath.(basename @@ rem_ext @@ Info.config_file i)
|
||||
|
||||
let dune i =
|
||||
let dune =
|
||||
Dune.stanzaf
|
||||
{|
|
||||
(executable
|
||||
(name %s)
|
||||
(modules (:standard \ %s))
|
||||
(promote (until-clean))
|
||||
(libraries cmdliner fmt mirage-runtime.functoria))
|
||||
|}
|
||||
(main i) (config i)
|
||||
in
|
||||
[ dune ]
|
||||
|
||||
let configure i =
|
||||
let* () = write_key i vote (fun x -> x) in
|
||||
write_key i warn_error string_of_bool
|
||||
|
||||
let create jobs =
|
||||
let packages = [ package "fmt" ] in
|
||||
let extra_deps = List.map dep jobs in
|
||||
let install i = Install.v ~bin:[ Fpath.(v (main i) + "exe", v "e2e") ] () in
|
||||
impl ~keys ~packages ~connect ~dune ~configure ~extra_deps ~install "E2e"
|
||||
job
|
||||
|
||||
let name_of_target i = Info.name i
|
||||
let target_filename = name_of_target
|
||||
let dune_project = []
|
||||
let dune_workspace = None
|
||||
let context_name _ = "default"
|
||||
end
|
||||
|
||||
include Lib.Make (C)
|
||||
include Tool.Make (C)
|
||||
|
||||
let register ?(init = []) ?src name typ =
|
||||
let init = runtime_args sys_argv :: init in
|
||||
register ~init ?src name typ
|
||||
10
unikernel/duniverse/mirage/test/functoria/e2e/lib/e2e.mli
Normal file
10
unikernel/duniverse/mirage/test/functoria/e2e/lib/e2e.mli
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
open Functoria.DSL
|
||||
|
||||
val register :
|
||||
?init:job impl list ->
|
||||
?src:[ `Auto | `None | `Some of string ] ->
|
||||
string ->
|
||||
job impl list ->
|
||||
unit
|
||||
|
||||
val run : unit -> unit
|
||||
Loading…
Add table
Add a link
Reference in a new issue