Module Utest

module Utest: sig .. end

type expected_test_outcome = 
| ExpectPass
| ExpectFail
| ExpectException of exn
type test_outcome = 
| Pass
| Fail
| UPass
| XFail
| Unresolved of string
type test = 
| TestCase of string * expected_test_outcome * (unit -> bool)
type test_results = {
   total : int;
   passed : int;
   failed : int;
   upassed : int;
   xfailed : int;
   unresolved : int;
}
val testcase : string -> expected_test_outcome -> (unit -> bool) -> test
val expect_pass : string -> (unit -> bool) -> test
val expect_fail : string -> (unit -> bool) -> test
val expect_exception : string -> exn -> (unit -> bool) -> test
exception InconsistentFixture
val eval_with_imperative_fixture : (unit -> 'fix) ->
('fix -> test) -> ('fix -> unit) -> unit -> test
val eval_with_functional_fixture : (unit -> 'fix) -> ('fix -> test) -> unit -> test
type verbosity = 
| PrintNothing
| PrintFailedTests
| PrintTestTotals
| PrintAllTests
val run_tests : verbosity -> (unit -> test) list -> test_results