From f6f047ea15860e9e9d30087997a2d55237ba01bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Proust?= Date: Thu, 21 Feb 2019 11:55:10 +0800 Subject: [PATCH] Micheline: fix dependencies in opam/dune --- src/lib_micheline/test/assert.ml | 26 ++++++++++++++++++++++++++ src/lib_micheline/test/dune | 7 ++----- src/lib_micheline/test/test_parser.ml | 6 +++--- src/lib_micheline/tezos-micheline.opam | 1 + 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/lib_micheline/test/assert.ml b/src/lib_micheline/test/assert.ml index d979059a5..37b67089b 100644 --- a/src/lib_micheline/test/assert.ml +++ b/src/lib_micheline/test/assert.ml @@ -23,6 +23,32 @@ (* *) (*****************************************************************************) +(* Mini compatibility layer to avoid circular dependency *) +module Compat = struct + let failwith fmt = Format.kasprintf (fun s -> Lwt.return (Error s)) fmt + let return_unit = Lwt.return (Ok ()) + let (>>=) = Lwt.bind + let (>>=?) v f = + v >>= function + | Error _ as err -> Lwt.return err + | Ok v -> f v + let rec iter2_p f l1 l2 = + match l1, l2 with + | [], [] -> return_unit + | [], _ | _, [] -> invalid_arg "Error_monad.iter2_p" + | x1 :: l1 , x2 :: l2 -> + let tx = f x1 x2 and tl = iter2_p f l1 l2 in + tx >>= fun tx_res -> + tl >>= fun tl_res -> + match tx_res, tl_res with + | Ok (), Ok () -> Lwt.return (Ok ()) + | Error exn1, Error exn2 -> failwith "%s -- %s" exn1 exn2 + | Ok (), Error exn + | Error exn, Ok () -> Lwt.return (Error exn) +end + +open Compat + let fail loc printer given expected msg = failwith "@[ On %s : %s@ @[Given:\t%a@]@ @[Expected:\t%a@]@]" diff --git a/src/lib_micheline/test/dune b/src/lib_micheline/test/dune index e4fc415a9..ee87647d5 100644 --- a/src/lib_micheline/test/dune +++ b/src/lib_micheline/test/dune @@ -1,12 +1,9 @@ (executables (names test_parser) - (libraries tezos-stdlib-unix - tezos-micheline + (libraries tezos-micheline alcotest-lwt) (flags (:standard -w -9-32 -safe-string - -open Tezos_base__TzPervasives - -open Tezos_micheline - -open Tezos_stdlib_unix))) + -open Tezos_micheline))) (alias (name buildtest) diff --git a/src/lib_micheline/test/test_parser.ml b/src/lib_micheline/test/test_parser.ml index 097359d76..278bf9d74 100644 --- a/src/lib_micheline/test/test_parser.ml +++ b/src/lib_micheline/test/test_parser.ml @@ -27,6 +27,8 @@ (* Token value *) (****************************************************************************) +open Assert.Compat + let assert_tokenize ~loc given expected = match Micheline_parser.tokenize given with | tokens, [] -> @@ -454,9 +456,7 @@ let wrap (n, f) = Alcotest_lwt.test_case n `Quick begin fun _ () -> f () >>= function | Ok () -> Lwt.return_unit - | Error err -> - Tezos_stdlib_unix.Logging_unix.close () >>= fun () -> - Lwt.fail_with (Format.asprintf "%a" pp_print_error err) + | Error err -> Lwt.fail_with err end let () = diff --git a/src/lib_micheline/tezos-micheline.opam b/src/lib_micheline/tezos-micheline.opam index 2dfbb7711..1d21a91e4 100644 --- a/src/lib_micheline/tezos-micheline.opam +++ b/src/lib_micheline/tezos-micheline.opam @@ -11,6 +11,7 @@ depends: [ "tezos-data-encoding" "tezos-error-monad" "uutf" + "alcotest-lwt" { with-test } ] build: [ [ "dune" "build" "-p" name "-j" jobs ]