summaryrefslogtreecommitdiff
path: root/src/lem_interp
diff options
context:
space:
mode:
authorGabriel Kerneis2014-02-18 16:56:05 +0000
committerGabriel Kerneis2014-02-18 16:56:05 +0000
commit669ced036bc511f6c75b91a9abb3dd3f607cf0a1 (patch)
treeb149a7ecf81c34ceca6da611afbe0fc978e7e8e2 /src/lem_interp
parent3dd4e21dc8a0c1782c3cb8d072388612f270facb (diff)
Report failing tests and return 1 in case of error
Diffstat (limited to 'src/lem_interp')
-rw-r--r--src/lem_interp/run_interp.ml7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lem_interp/run_interp.ml b/src/lem_interp/run_interp.ml
index 1c3c76d6..2440f60f 100644
--- a/src/lem_interp/run_interp.ml
+++ b/src/lem_interp/run_interp.ml
@@ -157,14 +157,14 @@ let perform_action ((reg, mem) as env) = function
let run (name, test) =
let rec loop env = function
- | Value v -> eprintf "%s: returned %s\n" name (val_to_string v)
+ | Value v -> eprintf "%s: returned %s\n" name (val_to_string v); true
| Action (a, s) ->
eprintf "%s: suspended on action %s\n" name (act_to_string a);
(*eprintf "%s: suspended on action %s, with stack %s\n" name (act_to_string a) (stack_to_string s);*)
let return, env' = perform_action env a in
eprintf "%s: action returned %s\n" name (val_to_string return);
loop env' (resume test s return)
- | Error e -> eprintf "%s: error: %s\n" name e in
+ | Error e -> eprintf "%s: error: %s\n" name e; false in
let entry = E_app((Id "main"), [E_lit L_unit]) in
eprintf "%s: starting\n" name;
try
@@ -172,5 +172,6 @@ let run (name, test) =
loop (Reg.empty, Mem.empty) (interp test entry)
with e ->
let trace = Printexc.get_backtrace () in
- eprintf "%s: interpretor error %s\n%s\n" name (Printexc.to_string e) trace
+ eprintf "%s: interpretor error %s\n%s\n" name (Printexc.to_string e) trace;
+ false
;;