

XXX OUT OF DATE !!!


An example illustrating the use of lurette on ocaml programs.

The idea is that not all all ocaml programs can be tested via lurette:
only "reactive ocaml programs" can.

A reactive ocaml program should implement the following functions:

init : unit -> unit
get_input_var_name_and_type : unit ->  (var_name * var_type) list
get_output_var_name_and_type : unit -> (var_name * var_type) list
step :  (var_name * Value.t) list ->  (var_name, Value.t) Hashtbl.t
trie :  (var_name * Value.t) list ->  (var_name, Value.t) Hashtbl.t

(* Trie save the current state of the SUT, perfoms a step, and
restore the saved state
   
  nb : i cannot call it try, it is an ocaml kwd ... *)
 


where 
type var_name = string
type var_type = string
(* 'var_type' can be 'bool', 'int', or 'float' *)

and module Value defines the following types:

     type num = I of int | F of float
     type t = B of bool | N of num