Module Ortac_runtime_qcheck_stm_domain.Make

Parameters

module Spec : STM.Spec

Signature

type pos =
  1. | Prefix
  2. | Tail1
  3. | Tail2
type traces = {
  1. where_it_failed : pos;
  2. trace_prefix : Report.trace list;
  3. trace_tail_1 : Report.trace list;
  4. trace_tail_2 : Report.trace list;
}
val empty : pos -> traces
val start_traces : pos -> string -> STM.res -> traces
val add_trace : (pos * Report.trace) -> traces -> traces
val append_traces : traces -> (pos * Report.trace list) -> traces
val get_traces : pos -> traces -> Report.trace list
val (<+>) : (pos * Report.trace) -> (traces * 'a) option -> (traces * 'a) option
val (<++>) : (traces * 'a) option -> (pos * Report.trace list) -> (traces * 'a) option
val (&&&) : 'a option -> 'a option Stdlib.Lazy.t -> 'a option
val (|||) : 'a option -> 'b option Stdlib.Lazy.t -> 'b option
val check_obs : (Spec.cmd -> Spec.state -> bool -> STM.res -> string) -> (Spec.cmd -> Spec.state -> STM.res -> 'a option) -> (Spec.cmd * STM.res) list -> (Spec.cmd * STM.res) list -> (Spec.cmd * STM.res) list -> Spec.state -> (traces * 'a) option
val all_interleavings_ok : (Spec.cmd list * Spec.cmd list * Spec.cmd list) -> bool
val arb_cmds_triple : int -> int -> (Spec.cmd list * Spec.cmd list * Spec.cmd list) QCheck.arbitrary
val arb_triple : int -> int -> (Spec.state -> Spec.cmd QCheck.arbitrary) -> (Spec.state -> Spec.cmd QCheck.arbitrary) -> (Spec.state -> Spec.cmd QCheck.arbitrary) -> (Spec.cmd list * Spec.cmd list * Spec.cmd list) QCheck.arbitrary
val rep_count : int
val retries : int
val seq_len : int
val par_len : int
val interp_sut_res : Spec.sut -> Spec.cmd list -> (Spec.cmd * STM.res) list
val run_par : Spec.cmd list -> Spec.cmd list -> Spec.cmd list -> (Spec.cmd * STM.res) list * (Spec.cmd * STM.res) list * (Spec.cmd * STM.res) list
val pp_prefix : Report.expected_result -> Stdlib.Format.formatter -> traces -> unit
val pp_spawned : pos -> Stdlib.Format.formatter -> traces -> unit
val pp_program : int -> Stdlib.Format.formatter -> (traces * Report.t) -> unit
val agree_prop : int -> (unit -> unit) -> (Spec.cmd -> Spec.state -> bool -> STM.res -> string) -> (Spec.cmd -> Spec.state -> STM.res -> Report.t option) -> (Spec.cmd list * Spec.cmd list * Spec.cmd list) -> bool
val agree_test : count:int -> name:string -> int -> (unit -> unit) -> (Spec.cmd -> Spec.state -> bool -> STM.res -> string) -> (Spec.cmd -> Spec.state -> STM.res -> Report.t option) -> QCheck.Test.t