79 lines
1.6 KiB
Plaintext
79 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
|
|
#install_printer Simplified.pp;;
|
|
|
|
let meta =
|
|
Meta.load ~name:"foo" ~fn:"test/unit-tests/findlib-db/foo/META"
|
|
|
|
[%%expect{|
|
|
val meta : Jbuilder.Meta.Simplified.t =
|
|
{ name = "foo"
|
|
; vars =
|
|
(requires =
|
|
{ set_rules =
|
|
[ { var = "requires"
|
|
; predicates = []
|
|
; action = Set
|
|
; value = "bar"
|
|
}
|
|
; { var = "requires"
|
|
; predicates = [ "+ppx_driver" ]
|
|
; action = Set
|
|
; value = "baz"
|
|
}
|
|
]
|
|
; add_rules = []
|
|
})
|
|
; subs = []
|
|
}
|
|
|}]
|