dune/test/unit-tests/tests.mlt

70 lines
1.6 KiB
Plaintext

(* -*- tuareg -*- *)
#warnings "-40";;
open Jbuilder
open Import
let print_pkg ppf pkg =
Format.fprintf ppf "<package:%s>" (Findlib.Package.name pkg)
;;
#install_printer print_pkg;;
#install_printer String_map.pp;;
[%%expect{|
val print_pkg : Format.formatter -> Jbuilder.Findlib.Package.t -> unit =
<fun>
|}]
let findlib =
let cwd = Path.absolute (Sys.getcwd ()) in
Findlib.create
~stdlib_dir:cwd
~path:[Path.relative cwd "test/unit-tests/findlib-db"]
;;
[%%expect{|
val findlib : Jbuilder.Findlib.t = <abstr>
|}]
let pkg =
match Findlib.find findlib "foo" with
| Ok x -> x
| Error _ -> assert false;;
[%%expect{|
val pkg : Jbuilder.Findlib.Package.t = <package:foo>
|}]
(* "foo" should depend on "baz" *)
Findlib.Package.requires pkg;;
[%%expect{|
- : string list = ["baz"]
|}]
(* +-----------------------------------------------------------------+
| Meta parsing/simplification |
+-----------------------------------------------------------------+ *)
open Meta
let meta =
Meta.load ~name:"foo" ~fn:"test/unit-tests/findlib-db/foo/META"
[%%expect{|
val meta : Jbuilder.Meta.Simplified.t =
{Jbuilder.Meta.Simplified.name = "foo";
vars =
(requires =
{Jbuilder.Meta.Simplified.Rules.set_rules =
[{Jbuilder__Meta.var = "requires"; predicates = [];
action = Jbuilder__Meta.Set; value = "bar"};
{Jbuilder__Meta.var = "requires";
predicates = [Jbuilder__Meta.Pos "ppx_driver"];
action = Jbuilder__Meta.Set; value = "baz"}];
add_rules = []});
subs = []}
|}]