summaryrefslogtreecommitdiff
path: root/test/c
diff options
context:
space:
mode:
authorAlasdair2020-04-15 15:57:38 +0100
committerAlasdair2020-04-15 15:57:38 +0100
commitb727e02d59c130b6b6d1eb969a0e4fa8cc156e51 (patch)
treedc7fce45ca7f0b90a628f0e15c1ce99d8554d360 /test/c
parent26510d7798daac30a400e8d04278a86ea8b83983 (diff)
Add more intuitive defaults to interactive toplevel
sail -i now starts an interactive toplevel with a few additional options set by default: - It applies the "interpreter" rewrites to any files passed on the command line. - It also applies those rewrites after the :l/:load command - Registers previously started in a disabled state, as the interactive shell made no default decision as to how to handle undefined (which is the initial value for all registers). Now -i implies -undefined_gen - Better help text for :fix_registers - Nullary interactive actions generate Sail functions that round-trip through pretty printing and parsing (bugfix) The -interact_custom flag has the same behavior as the previous -i flag This commit also improves the c/ocaml/interpreter test harness so it cleans up temporary files which could cause issues with stale files when switching ocaml versions
Diffstat (limited to 'test/c')
-rw-r--r--test/c/execute.isail1
-rwxr-xr-xtest/c/run_tests.py6
2 files changed, 5 insertions, 2 deletions
diff --git a/test/c/execute.isail b/test/c/execute.isail
index 018dd92c..f4b5ea0f 100644
--- a/test/c/execute.isail
+++ b/test/c/execute.isail
@@ -1,4 +1,3 @@
-:rewrites interpreter
initialize_registers()
:run
main()
diff --git a/test/c/run_tests.py b/test/c/run_tests.py
index 64c3ae42..c4f0e591 100755
--- a/test/c/run_tests.py
+++ b/test/c/run_tests.py
@@ -26,6 +26,7 @@ def test_c(name, c_opts, sail_opts, valgrind):
step('diff {}.result {}.expect'.format(basename, basename))
if valgrind:
step("valgrind --leak-check=full --track-origins=yes --errors-for-leak-kinds=all --error-exitcode=2 ./{}".format(basename), expected_status = 1 if basename == "exception" else 0)
+ step('rm {}.c {} {}.result'.format(basename, basename, basename))
print '{} {}{}{}'.format(filename, color.PASS, 'ok', color.END)
sys.exit()
results.collect(tests)
@@ -40,8 +41,9 @@ def test_interpreter(name):
basename = os.path.splitext(os.path.basename(filename))[0]
tests[filename] = os.fork()
if tests[filename] == 0:
- step('sail -undefined_gen -is execute.isail -iout {}.iresult {}'.format(basename, filename))
+ step('sail -is execute.isail -iout {}.iresult {}'.format(basename, filename))
step('diff {}.iresult {}.expect'.format(basename, basename))
+ step('rm {}.iresult'.format(basename))
print '{} {}{}{}'.format(filename, color.PASS, 'ok', color.END)
sys.exit()
results.collect(tests)
@@ -59,6 +61,8 @@ def test_ocaml(name):
step('sail -ocaml -ocaml_build_dir _sbuild_{} -o {} {}'.format(basename, basename, filename))
step('./{} 1> {}.oresult'.format(basename, basename), expected_status = 1 if basename == "exception" else 0)
step('diff {}.oresult {}.expect'.format(basename, basename))
+ step('rm -r _sbuild_{}'.format(basename))
+ step('rm {}.oresult {}'.format(basename, basename))
print '{} {}{}{}'.format(filename, color.PASS, 'ok', color.END)
sys.exit()
results.collect(tests)