OUnit user guide : OUnitRunner.GenericWorker

`sig type message_to_worker = Exit | AckLock of bool | RunTest of OUnitTest.path val string_of_message_to_worker : OUnitRunner.GenericWorker.message_to_worker -> string type message_from_worker = AckExit | Log of OUnitTest.log_event_t | Lock of int | Unlock of int | TestDone of (OUnitTest.result_full * OUnitTest.result_list) val string_of_message_from_worker : OUnitRunner.GenericWorker.message_from_worker -> string module MapPath : sig type key = OUnitTest.path type +'a t val empty : 'a t val is_empty : 'a t -> bool val mem : key -> 'a t -> bool val add : key -> 'a -> 'a t -> 'a t val singleton : key -> 'a -> 'a t val remove : key -> 'a t -> 'a t val merge : (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool val iter : (key -> 'a -> unit) -> 'a t -> unit val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b val for_all : (key -> 'a -> bool) -> 'a t -> bool val exists : (key -> 'a -> bool) -> 'a t -> bool val filter : (key -> 'a -> bool) -> 'a t -> 'a t val partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t val cardinal : 'a t -> int val bindings : 'a t -> (key * 'a) list val min_binding : 'a t -> key * 'a val max_binding : 'a t -> key * 'a val choose : 'a t -> key * 'a val split : key -> 'a t -> 'a t * 'a option * 'a t val find : key -> 'a t -> 'a val map : ('a -> 'b) -> 'a t -> 'b t val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t end type ('a, 'b) channel = { send_data : 'a -> unit; receive_data : unit -> 'b; close : unit -> unit; } val wrap_channel : string -> ('a -> string) -> ('b -> string) -> ('b, 'a) OUnitRunner.GenericWorker.channel -> ('b, 'a) OUnitRunner.GenericWorker.channel val main_worker_loop : OUnitConf.conf -> (unit -> 'a) -> (OUnitRunner.GenericWorker.message_from_worker, OUnitRunner.GenericWorker.message_to_worker) OUnitRunner.GenericWorker.channel -> string -> (OUnitTest.path * 'b * (OUnitTest.ctxt -> 'c)) OUnitRunner.GenericWorker.MapPath.t -> bool -> unit type 'a worker = { channel : (OUnitRunner.GenericWorker.message_to_worker, OUnitRunner.GenericWorker.message_from_worker) OUnitRunner.GenericWorker.channel; close_worker : unit -> string option; select_fd : 'a; shard_id : string; is_running : unit -> bool; } val runner : (OUnitConf.conf -> (OUnitRunner.GenericWorker.MapPath.key * OUnitTest.test_length * OUnitTest.test_fun) OUnitRunner.GenericWorker.MapPath.t -> string -> string -> bool -> 'a OUnitRunner.GenericWorker.worker) -> ('a OUnitRunner.GenericWorker.worker list -> float -> 'a OUnitRunner.GenericWorker.worker list) -> OUnitConf.conf -> (OUnitTest.path, OUnitTest.result) OUnitLogger.logger -> OUnitChooser.chooser -> (OUnitTest.path * OUnitTest.test_length * OUnitTest.test_fun) list -> OUnitTest.result_full list end`