package async

  1. Overview
  2. Docs

An alternative to Async.Deferred_or_error_expect_test_config in which %expect has type unit rather than unit Deferred.Or_error.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.Or_error.t
module IO_run : sig ... end
module IO_flush : sig ... end

A now-legacy monad. This signature used to declare a flush function. [%expect.output] still returns this type. No meaningful monadic work is done.

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 sanitize : string -> string

sanitize can be used to map all output strings, e.g. for cleansing.

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.