Add native build and compiler driver
This commit is contained in:
17 files changed
+833
No files matched your search
@@ -0,0 +1,65 @@
|
||||
type case = string * (unit -> unit)
|
||||
|
||||
let failures = ref 0
|
||||
|
||||
let cases = ref 0
|
||||
|
||||
let check name condition =
|
||||
incr cases;
|
||||
if condition then Printf.printf "ok %s\n" name
|
||||
else (
|
||||
incr failures;
|
||||
Printf.printf "FAIL %s\n" name)
|
||||
|
||||
let fail name message =
|
||||
incr cases;
|
||||
incr failures;
|
||||
Printf.printf "FAIL %s: %s\n" name message
|
||||
|
||||
let check_equal_int name expected actual =
|
||||
incr cases;
|
||||
if expected = actual then Printf.printf "ok %s\n" name
|
||||
else (
|
||||
incr failures;
|
||||
Printf.printf "FAIL %s: expected %d, got %d\n" name expected actual)
|
||||
|
||||
let check_equal_string name expected actual =
|
||||
incr cases;
|
||||
if expected = actual then Printf.printf "ok %s\n" name
|
||||
else (
|
||||
incr failures;
|
||||
Printf.printf "FAIL %s: expected %S, got %S\n" name expected actual)
|
||||
|
||||
let check_true name message condition =
|
||||
if condition then (incr cases; Printf.printf "ok %s\n" name)
|
||||
else fail name message
|
||||
|
||||
let expect_diagnostic name thunk =
|
||||
incr cases;
|
||||
try
|
||||
thunk ();
|
||||
incr failures;
|
||||
Printf.printf "FAIL %s: expected a diagnostic error\n" name
|
||||
with
|
||||
| Diagnostic.Error diagnostic ->
|
||||
if diagnostic.Diagnostic.message = "" then (
|
||||
incr failures;
|
||||
Printf.printf "FAIL %s: empty diagnostic message\n" name)
|
||||
else Printf.printf "ok %s\n" name
|
||||
| error ->
|
||||
incr failures;
|
||||
Printf.printf "FAIL %s: unexpected exception %s\n" name (Printexc.to_string error)
|
||||
|
||||
let run_case (name, thunk) =
|
||||
try thunk () with
|
||||
| exception_ ->
|
||||
incr failures;
|
||||
Printf.printf "FAIL %s: raised %s\n" name (Printexc.to_string exception_)
|
||||
|
||||
let run_suite suite cases =
|
||||
print_endline ("--- " ^ suite ^ " ---");
|
||||
List.iter run_case cases
|
||||
|
||||
let failure_count () = !failures
|
||||
|
||||
let case_count () = !cases
|
||||
Reference in new issue
Block a user