summaryrefslogtreecommitdiff
path: root/test/typecheck
diff options
context:
space:
mode:
authorAlasdair Armstrong2017-08-02 14:55:11 +0100
committerAlasdair Armstrong2017-08-02 14:55:11 +0100
commit8c8c08bc34ebc1bbd9169ce1db13ec5960f96e79 (patch)
tree7871cdd6b3854a6e4e4437e8d293197f23cc5d31 /test/typecheck
parentf22859d797943409b49f098d17fa76eb92419640 (diff)
parentb63df3a5806c33401f03a8e9eb33fc3291872105 (diff)
Merge remote-tracking branch 'origin/sail_new_tc' into experiments
Diffstat (limited to 'test/typecheck')
-rw-r--r--test/typecheck/pass/as_pattern.sail7
-rw-r--r--test/typecheck/pass/vector_synonym_cast.sail8
-rwxr-xr-xtest/typecheck/run_tests.sh29
3 files changed, 41 insertions, 3 deletions
diff --git a/test/typecheck/pass/as_pattern.sail b/test/typecheck/pass/as_pattern.sail
new file mode 100644
index 00000000..a1cd9461
--- /dev/null
+++ b/test/typecheck/pass/as_pattern.sail
@@ -0,0 +1,7 @@
+
+val int -> int effect pure test
+
+function test ((int) _ as x) =
+{
+ x
+}
diff --git a/test/typecheck/pass/vector_synonym_cast.sail b/test/typecheck/pass/vector_synonym_cast.sail
new file mode 100644
index 00000000..72a7e9d0
--- /dev/null
+++ b/test/typecheck/pass/vector_synonym_cast.sail
@@ -0,0 +1,8 @@
+
+typedef vecsyn = vector<0,1,dec,bit>
+
+val cast vector<1,1,dec,bit> -> vector<0,1,dec,bit> effect pure test_cast
+
+val vector<1,1,dec,bit> -> vecsyn effect pure test
+
+function test x = x
diff --git a/test/typecheck/run_tests.sh b/test/typecheck/run_tests.sh
index c4faad7e..8659e60e 100755
--- a/test/typecheck/run_tests.sh
+++ b/test/typecheck/run_tests.sh
@@ -101,17 +101,20 @@ function test_lem {
do
if $SAILDIR/sail -lem $DIR/$1/$i 2> /dev/null
then
+ green "generated lem for $1/$i" "pass"
+
mv $SAILDIR/${i%%.*}_embed_types.lem $DIR/lem/
mv $SAILDIR/${i%%.*}_embed.lem $DIR/lem/
mv $SAILDIR/${i%%.*}_embed_sequential.lem $DIR/lem/
if lem -lib $SAILDIR/src/lem_interp -lib $SAILDIR/src/gen_lib/ $DIR/lem/${i%%.*}_embed_types.lem $DIR/lem/${i%%.*}_embed.lem 2> /dev/null
then
- green "generated lem for $1/$i" "pass"
+ green "typechecking lem for $1/$i" "pass"
else
- red "generated lem for $1/$i" "failed to typecheck lem"
+ red "typechecking lem for $1/$i" "fail"
fi
else
- red "generated lem for $1/$i" "failed to generate lem"
+ red "generated lem for $1/$i" "fail"
+ red "typechecking lem for $1/$i" "fail"
fi
done
}
@@ -124,4 +127,24 @@ test_lem rtpass
finish_suite "Lem generation 2"
+function test_ocaml {
+ for i in `ls $DIR/pass/`;
+ do
+ if $SAILDIR/sail -ocaml $DIR/$1/$i 2> /dev/null
+ then
+ green "generated ocaml for $1/$i" "pass"
+ else
+ red "generated ocaml for $1/$i" "fail"
+ fi
+ done
+}
+
+test_ocaml pass
+
+finish_suite "Ocaml generation 1"
+
+test_ocaml rtpass
+
+finish_suite "Ocaml generation 2"
+
printf "</testsuites>\n" >> $DIR/tests.xml