summaryrefslogtreecommitdiff
path: root/test/builtins
diff options
context:
space:
mode:
authorJon French2018-12-28 15:12:00 +0000
committerJon French2018-12-28 15:12:00 +0000
commitb59fba68e535f39b6285ec7f4f693107b6e34148 (patch)
tree3135513ac4b23f96b41f3d521990f1ce91206c99 /test/builtins
parent9f6a95882e1d3d057bcb83d098ba1b63925a4d1f (diff)
parent2c887e7d01331d3165120695594eac7a2650ec03 (diff)
Merge branch 'sail2' into rmem_interpreter
Diffstat (limited to 'test/builtins')
-rw-r--r--test/builtins/get_slice_int.sail3
-rwxr-xr-xtest/builtins/run_tests.py28
-rwxr-xr-xtest/builtins/run_tests.sh140
3 files changed, 20 insertions, 151 deletions
diff --git a/test/builtins/get_slice_int.sail b/test/builtins/get_slice_int.sail
index b64526d2..ef673daf 100644
--- a/test/builtins/get_slice_int.sail
+++ b/test/builtins/get_slice_int.sail
@@ -199,7 +199,8 @@ function main (() : unit) -> unit = {
assert(get_slice_int(4, 6, 0) == 4^0x6, "get_slice_int(4, 6, 0) == 4^0x6");
assert(get_slice_int(4, 7, 0) == 4^0x7, "get_slice_int(4, 7, 0) == 4^0x7");
assert(get_slice_int(4, 8, 0) == 4^0x8, "get_slice_int(4, 8, 0) == 4^0x8");
- assert(get_slice_int(4, undefined, 0) == 4^0x0, "get_slice_int(4, undefined, 0) == 4^0x0");
+ // Not sure we want this property!
+ // assert(get_slice_int(4, undefined, 0) == 4^0x0, "get_slice_int(4, undefined, 0) == 4^0x0");
assert(get_slice_int(5, 0, 0) == 5^0x0, "get_slice_int(5, 0, 0) == 5^0x0");
assert(get_slice_int(5, 1, 0) == 5^0x1, "get_slice_int(5, 1, 0) == 5^0x1");
assert(get_slice_int(5, 17, 0) == 5^0x11, "get_slice_int(5, 17, 0) == 5^0x11");
diff --git a/test/builtins/run_tests.py b/test/builtins/run_tests.py
index e1f2927e..b20d4224 100755
--- a/test/builtins/run_tests.py
+++ b/test/builtins/run_tests.py
@@ -13,9 +13,10 @@ from sailtest import *
def test_c_builtins(name, sail_opts):
banner('Testing builtins: {} Sail options: {}'.format(name, sail_opts))
- tests = {}
- for filename in os.listdir('.'):
- if re.match('.+\.sail', filename):
+ 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:
@@ -26,13 +27,16 @@ def test_c_builtins(name, sail_opts):
step('rm {}'.format(basename))
print '{} {}{}{}'.format(filename, color.PASS, 'ok', color.END)
sys.exit()
+ results.collect(tests)
+ return results.finish()
return collect_results(name, tests)
def test_ocaml_builtins(name, sail_opts):
banner('Testing builtins: {} Sail options: {}'.format(name, sail_opts))
- tests = {}
- for filename in os.listdir('.'):
- if re.match('.+\.sail', filename):
+ 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:
@@ -42,13 +46,16 @@ def test_ocaml_builtins(name, sail_opts):
step('rm {}'.format(basename))
print '{} {}{}{}'.format(filename, color.PASS, 'ok', color.END)
sys.exit()
+ results.collect(tests)
+ return results.finish()
return collect_results(name, tests)
def test_lem_builtins(name):
banner('Testing builtins: {}'.format(name))
- tests = {}
- for filename in os.listdir('.'):
- if re.match('.+\.sail', filename):
+ 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:
@@ -76,7 +83,8 @@ def test_lem_builtins(name):
print '{} {}{}{}'.format(filename, color.PASS, 'ok', color.END)
sys.exit()
- return collect_results(name, tests)
+ results.collect(tests)
+ return results.finish()
xml = '<testsuites>\n'
diff --git a/test/builtins/run_tests.sh b/test/builtins/run_tests.sh
deleted file mode 100755
index eeb57a79..00000000
--- a/test/builtins/run_tests.sh
+++ /dev/null
@@ -1,140 +0,0 @@
-
-#!/usr/bin/env bash
-set -e
-
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-cd $DIR
-SAILDIR="$DIR/../.."
-LEMBUILDDIR="$DIR/_lembuild"
-
-RED='\033[0;31m'
-GREEN='\033[0;32m'
-YELLOW='\033[0;33m'
-NC='\033[0m'
-
-rm -f $DIR/tests.xml
-
-pass=0
-fail=0
-XML=""
-
-function green {
- (( pass += 1 ))
- printf "$1: ${GREEN}$2${NC}\n"
- XML+=" <testcase name=\"$1\"/>\n"
-}
-
-function yellow {
- (( fail += 1 ))
- printf "$1: ${YELLOW}$2${NC}\n"
- XML+=" <testcase name=\"$1\">\n <error message=\"$2\">$2</error>\n </testcase>\n"
-}
-
-function red {
- (( fail += 1 ))
- printf "$1: ${RED}$2${NC}\n"
- XML+=" <testcase name=\"$1\">\n <error message=\"$2\">$2</error>\n </testcase>\n"
-}
-
-function finish_suite {
- printf "$1: Passed ${pass} out of $(( pass + fail ))\n\n"
- XML=" <testsuite name=\"$1\" tests=\"$(( pass + fail ))\" failures=\"${fail}\" timestamp=\"$(date)\">\n$XML </testsuite>\n"
- printf "$XML" >> $DIR/tests.xml
- XML=""
- pass=0
- fail=0
-}
-
-printf "<testsuites>\n" >> $DIR/tests.xml
-
-shopt -s nullglob;
-for file in $DIR/*.sail;
-do
- if $SAILDIR/sail -no_warn -c -O $file 1> ${file%.sail}.c 2> /dev/null;
- then
- green "compiling $(basename $file) (C)" "ok";
- if gcc -I $SAILDIR/lib/ ${file%.sail}.c -lgmp;
- then
- green "compiling $(basename ${file%.sail}.c)" "ok";
- if $DIR/a.out;
- then
- green "tested $(basename ${file%.sail}) (C)" "ok"
- else
- red "tested $(basename ${file%.sail}) (C)" "fail"
- fi
- else
- red "compiling $file" "fail"
- fi
- else
- red "compiling $file" "fail"
- fi;
-
- # if $SAILDIR/sail -no_warn -o out -ocaml $file 1> /dev/null 2> /dev/null;
- # then
- # green "compiling $(basename $file) (OCaml)" "ok"
- # if $DIR/out;
- # then
- # green "tested $(basename ${file%.sail}) (OCaml)" "ok"
- # else
- # red "tested $(basename ${file%.sail}) (OCaml)" "fail"
- # fi
- # else
- # red "compiling $(basename $file) (OCaml)" "fail"
- # fi;
-
- # mkdir -p "$LEMBUILDDIR"
-
- # if "$SAILDIR/sail" -no_warn -lem -lem_mwords -lem_lib Test_extras -undefined_gen -o out "$file" 1> /dev/null 2> /dev/null;
- # then
- # mv out.lem out_types.lem "$LEMBUILDDIR"
- # if lem -ocaml -lib "$SAILDIR/src/lem_interp" \
- # -outdir "$LEMBUILDDIR" \
- # "$SAILDIR/src/gen_lib/sail_values.lem" \
- # "$SAILDIR/src/gen_lib/sail_operators.lem" \
- # "$SAILDIR/src/gen_lib/sail_operators_mwords.lem" \
- # "$SAILDIR/src/lem_interp/sail_instr_kinds.lem" \
- # "$SAILDIR/src/gen_lib/prompt.lem" \
- # "$SAILDIR/src/gen_lib/state_monad.lem" \
- # "$SAILDIR/src/gen_lib/state.lem" \
- # "$SAILDIR/src/gen_lib/prompt_monad.lem" \
- # "test_extras.lem" "$LEMBUILDDIR/out_types.lem" "$LEMBUILDDIR/out.lem" 1> /dev/null 2> /dev/null;
- # then
- # cd "$LEMBUILDDIR"
- # if ocamlfind ocamlc -linkpkg -package zarith -package lem \
- # sail_values.ml sail_operators.ml \
- # sail_instr_kinds.ml prompt_monad.ml prompt.ml \
- # sail_operators_mwords.ml state_monad.ml state.ml \
- # test_extras.ml out_types.ml out.ml ../test.ml \
- # -o test 1> /dev/null 2> /dev/null
- # then
- # green "compiling $(basename $file) (Lem)" "ok"
- # if ./test 1> /dev/null 2> /dev/null
- # then
- # green "tested $(basename ${file%.sail}) (Lem)" "ok"
- # else
- # red "tested $(basename ${file%.sail}) (Lem)" "fail"
- # fi
- # else
- # red "compiling $(basename $file) (Sail->Lem->Ocaml->Bytecode)" "fail"
- # fi
- # cd "$DIR"
- # else
- # red "compiling $(basename $file) (Sail->Lem->Ocaml)" "fail"
- # fi
- # else
- # red "compiling $(basename $file) (Sail->Lem)" "fail"
- # fi;
-
- rm -rf $DIR/_sbuild/;
- rm -rf "$LEMBUILDDIR";
- rm -f Out_lemmas.thy;
- rm -f out_types.lem;
- rm -f out.lem;
- rm -f ${file%.sail}.c;
- rm -f a.out;
- rm -f out
-done
-
-finish_suite "builtin testing"
-
-printf "</testsuites>\n" >> $DIR/tests.xml