summaryrefslogtreecommitdiff
path: root/test/c/run_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/c/run_tests.py')
-rwxr-xr-xtest/c/run_tests.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/c/run_tests.py b/test/c/run_tests.py
index c9474614..28a4d28d 100755
--- a/test/c/run_tests.py
+++ b/test/c/run_tests.py
@@ -26,6 +26,28 @@ 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 ./{}.bin".format(basename), expected_status = 1 if basename == "exception" else 0)
+ step('rm {}.c {}.bin {}.result'.format(basename, basename, basename))
+ print '{} {}{}{}'.format(filename, color.PASS, 'ok', color.END)
+ sys.exit()
+ results.collect(tests)
+ return results.finish()
+
+def test_c2(name, c_opts, sail_opts, valgrind):
+ banner('Testing {} with C (-c2) options: {} Sail options: {} valgrind: {}'.format(name, c_opts, sail_opts, valgrind))
+ results = Results(name)
+ for filenames in chunks(os.listdir('.'), parallel()):
+ tests = {}
+ for filename in filenames:
+ basename = os.path.splitext(os.path.basename(filename))[0]
+ tests[filename] = os.fork()
+ if tests[filename] == 0:
+ step('sail -no_warn -c2 {} {} -o {}'.format(sail_opts, filename, basename))
+ step('gcc {} {}.c {}_emu.c {}/lib/*.c -lgmp -lz -I {}/lib -o {}'.format(c_opts, basename, basename, sail_dir, sail_dir, basename))
+ step('./{} 1> {}.result'.format(basename, basename), expected_status = 1 if basename == "exception" else 0)
+ 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)
@@ -42,6 +64,7 @@ def test_interpreter(name):
if tests[filename] == 0:
step('sail -undefined_gen -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 +82,8 @@ def test_ocaml(name):
step('sail -ocaml -ocaml_build_dir _sbuild_{} -o {}_ocaml {}'.format(basename, basename, filename))
step('./{}_ocaml 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 {}_ocaml'.format(basename, basename))
print '{} {}{}{}'.format(filename, color.PASS, 'ok', color.END)
sys.exit()
results.collect(tests)
@@ -90,6 +115,7 @@ def test_lem(name):
xml = '<testsuites>\n'
+xml += test_c2('unoptimized C', '', '', True)
xml += test_c('unoptimized C', '', '', True)
xml += test_c('optimized C', '-O2', '-O', True)
xml += test_c('constant folding', '', '-Oconstant_fold', True)