package async

  1. Overview
  2. Docs

An alternative to Async.Expect_test_config in which %expect has type unit rather than unit Deferred.t. This lets one write:

[%expect {| |};

rather than:

let%bind () = [%expect {| |}] in

It also means that let%expect cannot terminate with %expect, and must instead terminate with return ().

include Expect_test_config_types.S with type 'a IO_flush.t = 'a with type 'a IO_run.t = 'a Async_kernel.Deferred.t
module IO_run : sig ... end
module IO_flush : sig ... end
val flush : unit -> unit IO_flush.t

Flush whatever need to be to get pending output out on file descriptor 0.

val run : (unit -> unit IO_run.t) -> unit

Run an IO operation until completion

val flushed : unit -> bool

Synchronous check that there is no pending output on file description 0. With async, there is no guarantee that on the rhs of a IO.bind (flush ()) ... the output is completely flushed, that's why we need this.

val upon_unreleasable_issue : [ `CR | `Warning_for_collector_testing ]

upon_unreleasable_issue specifies how to deal with output that should not be released even if it is accepted (e.g. backtraces). The default is `CR.


Innovation. Community. Security.