let sequential_runner conf logger chooser test_cases =
let shared = OUnitShared.create () in
let rec iter state =
match OUnitState.next_test_case conf logger state with
| OUnitState.Finished, state ->
OUnitState.get_results state
| OUnitState.Next_test_case (test_path, test_fun, worker), state ->
iter
(OUnitState.test_finished conf
(run_one_test conf logger shared test_path test_fun)
worker state)
| (OUnitState.Try_again | OUnitState.Not_enough_worker), _ ->
assert false
in
let state =
OUnitState.add_worker () (OUnitState.create conf chooser test_cases)
in
iter state