diff options
| author | Gabriel Kerneis | 2014-06-09 16:54:00 +0100 |
|---|---|---|
| committer | Gabriel Kerneis | 2014-06-09 16:54:00 +0100 |
| commit | fe62f284dde251076cabeea189b08324e672214b (patch) | |
| tree | 94e54389f4fbad9c8e8a0d1833525f4289383926 /src/test | |
| parent | a4bfd24ad3756f46b241adc043a74603df78bfad (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.ml | 10 | ||||
| -rw-r--r-- | src/test/run_tests.ml | 4 |
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 |
