Module Lin.MakeCmd

Functor to map a combinator-based module signature description into a raw Lin description. This functor is exposed for internal uses only, its API may change at any time.

Parameters

module Spec : Spec

Signature

type t

The type of the system under test

type cmd

The type of commands

val show_cmd : cmd -> string

show_cmd c returns a string representing the command c.

val gen_cmd : cmd QCheck.Gen.t

A command generator.

val shrink_cmd : cmd QCheck.Shrink.t

A command shrinker. To a first approximation you can use QCheck.Shrink.nil.

type res

The command result type

val show_res : res -> string

show_res r returns a string representing the result r.

val equal_res : res -> res -> bool

equality function over res

val init : unit -> t

Initialize the system under test.

val cleanup : t -> unit

Utility function to clean up t after each test instance, e.g., for closing sockets, files, or resetting global parameters

val run : cmd -> t -> res

run c t should interpret the command c over the system under test t (typically side-effecting).