Module Mavryk_p2p_test_common.P2p_test_utils

This module provides functions used for tests.

type 'a timeout_t = {
  1. time : float;
    (*

    Duration of the timeout.

    *)
  2. msg : 'a -> string;
    (*

    Create the error message.

    *)
}

Is a timeout used with wait_pred function.

val wait_pred : ?timeout:'a timeout_t -> pred:('a -> bool) -> arg:'a -> unit -> unit Mavryk_base.TzPervasives.tzresult Lwt.t

wait_pred wait until pred arg is true. If pred is not satisfy after timeout.time seconds a Timeout (timeout.msg arg) error is raised.

val wait_pred_s : ?timeout:'a timeout_t -> pred:('a -> bool Lwt.t) -> arg:'a -> unit -> unit Mavryk_base.TzPervasives.tzresult Lwt.t

Same as wait_pred.

val wait_conns : ?timeout:float -> pool:('a, 'b, 'c) Mavryk_p2p.P2p_pool.t -> int -> unit Mavryk_base.TzPervasives.tzresult Lwt.t

Based on wait_pred. wait_conns ~pool n waits until at least n connections are actives in ~pool.

connect_all connect_handler points establishes the connections to points using connect_handler and returns them. If one connection need more than ?timeout seconds to be established, the function fails with Timeout error.

val close_active_conns : ('a, 'b, 'c) Mavryk_p2p.P2p_pool.t -> unit Lwt.t

close_active_conns pool@ closes all actives connections of the pool. This function waits until the connections are effectively closed.

val canceler : Lwt_canceler.t
val proof_of_work_target : Mavryk_crypto.Crypto_box.pow_target
val run_nodes : addr:Mavryk_base.TzPervasives.P2p_addr.t -> ?port:int -> ((unit, unit) Process.Channel.t -> Mavryk_p2p.P2p_io_scheduler.t -> Ipaddr.V6.t -> int -> (unit, Mavryk_base.TzPervasives.error Mavryk_base.TzPervasives.trace) Stdlib.result Lwt.t) -> ((unit, unit) Process.Channel.t -> Mavryk_p2p.P2p_io_scheduler.t -> Lwt_unix.file_descr -> (unit, Mavryk_base.TzPervasives.error Mavryk_base.TzPervasives.trace) Stdlib.result Lwt.t) -> (unit, Mavryk_base.TzPervasives.error Mavryk_base.TzPervasives.trace) Stdlib.result Lwt.t
val run_nodes_fd : addr:Mavryk_base.TzPervasives.P2p_addr.t -> ?port:int -> ((unit, unit) Process.Channel.t -> Ipaddr.V6.t -> int -> (unit, Mavryk_base.TzPervasives.error Mavryk_base.TzPervasives.trace) Stdlib.result Lwt.t) -> ((unit, unit) Process.Channel.t -> Lwt_unix.file_descr -> (unit, Mavryk_base.TzPervasives.error Mavryk_base.TzPervasives.trace) Stdlib.result Lwt.t) -> (unit, Mavryk_base.TzPervasives.error Mavryk_base.TzPervasives.trace) Stdlib.result Lwt.t
val sync : (unit, unit) Process.Channel.t -> (unit, Mavryk_base.TzPervasives.error Mavryk_base.TzPervasives.trace) Stdlib.result Lwt.t