ocaml/ocamltest/result.ml

58 lines
1.9 KiB
OCaml

(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Sebastien Hinderer, projet Gallium, INRIA Paris *)
(* *)
(* Copyright 2018 Institut National de Recherche en Informatique et *)
(* en Automatique. *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
(* Definition of test-result related types and functions *)
type status = Pass | Skip | Fail
type t = {
status : status;
reason : string option
}
let result_of_status s = { status = s; reason = None }
let pass = result_of_status Pass
let skip = result_of_status Skip
let fail = result_of_status Fail
let result_with_reason s r = { status = s; reason = Some r }
let pass_with_reason r = result_with_reason Pass r
let skip_with_reason r = result_with_reason Skip r
let fail_with_reason r = result_with_reason Fail r
let string_of_status = function
| Pass -> "passed"
| Skip -> "skipped"
| Fail -> "failed"
let string_of_reason = function
| None -> ""
| Some reason -> (" (" ^ reason ^ ")")
let string_of_result r =
(string_of_status r.status) ^ (string_of_reason r.reason)
let is_pass r = r.status = Pass
let is_skip r = r.status = Skip
let is_fail r = r.status = Fail