summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorGabriel Kerneis2014-06-09 16:54:00 +0100
committerGabriel Kerneis2014-06-09 16:54:00 +0100
commitfe62f284dde251076cabeea189b08324e672214b (patch)
tree94e54389f4fbad9c8e8a0d1833525f4289383926 /src/test
parenta4bfd24ad3756f46b241adc043a74603df78bfad (diff)
Improve interaction after chat with Peter
- remember mode (run, step or next) between instructions - display continuation by default in step mode - start in step mode by default - incompatible change: the shorthand for stack is now bt (=backtrace), since s becomes the shorthand for step - incompatible change: pressing enter now repeats the current mode, instead of "step"
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run_power.ml10
-rw-r--r--src/test/run_tests.ml4
2 files changed, 8 insertions, 6 deletions
diff --git a/src/test/run_power.ml b/src/test/run_power.ml
index c47b60d3..ca4dbc97 100644
--- a/src/test/run_power.ml
+++ b/src/test/run_power.ml
@@ -103,16 +103,16 @@ let get_reg reg name =
| _ -> assert false
;;
-let rec fde_loop count entry mem reg prog =
+let rec fde_loop count entry mem reg ?mode prog =
debugf "\n**** instruction %d ****\n" count;
- match Run_interp.run ~entry ~mem ~reg ~eager_eval:!eager_eval prog with
- | false, _ -> eprintf "FAILURE\n"; exit 1
- | true, (reg, mem) ->
+ match Run_interp.run ~entry ~mem ~reg ~eager_eval:!eager_eval ?mode prog with
+ | false, _, _ -> eprintf "FAILURE\n"; exit 1
+ | true, mode, (reg, mem) ->
if Big_int.eq_big_int (get_reg reg "CIA") lr_init_value then
eprintf "\nSUCCESS: returned with value %s\n"
(Big_int.string_of_big_int (get_reg reg "GPR3"))
else
- fde_loop (count+1) entry mem reg prog
+ fde_loop (count+1) entry mem reg ~mode:mode prog
;;
let run () =
diff --git a/src/test/run_tests.ml b/src/test/run_tests.ml
index a8323322..770ed426 100644
--- a/src/test/run_tests.ml
+++ b/src/test/run_tests.ml
@@ -11,7 +11,9 @@ let tests = [
(*"power", Power.defs;*)
] ;;
-let run_one ((name, _) as t) = (name, fst(Run_interp.run t))
+let fst3 (x,_,_) = x
+
+let run_one ((name, _) as t) = (name, fst3(Run_interp.run t))
let run_all () =
let results = List.map run_one tests in