70 lines
1.6 KiB
Plaintext
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 = []}
|
|
|}]
|