summaryrefslogtreecommitdiff
path: root/test/ocaml
diff options
context:
space:
mode:
Diffstat (limited to 'test/ocaml')
-rw-r--r--test/ocaml/trycatch/expect2
-rw-r--r--test/ocaml/trycatch/tc.sail23
-rw-r--r--test/ocaml/void/expect1
-rw-r--r--test/ocaml/void/void.sail14
4 files changed, 40 insertions, 0 deletions
diff --git a/test/ocaml/trycatch/expect b/test/ocaml/trycatch/expect
new file mode 100644
index 00000000..0aab34df
--- /dev/null
+++ b/test/ocaml/trycatch/expect
@@ -0,0 +1,2 @@
+Before throw
+Caught!
diff --git a/test/ocaml/trycatch/tc.sail b/test/ocaml/trycatch/tc.sail
new file mode 100644
index 00000000..b805f3fa
--- /dev/null
+++ b/test/ocaml/trycatch/tc.sail
@@ -0,0 +1,23 @@
+
+scattered union exception
+
+union clause exception = Test_int : int
+
+union clause exception = Test_failure : string
+
+val main : unit -> unit effect {escape}
+
+function main () = {
+ try {
+ print("Before throw");
+ throw(Test_failure("Caught!"));
+ print("Not printed")
+ } catch {
+ Test_failure(msg) => print(msg),
+ _ => print("Unknown exception")
+ }
+}
+
+union clause exception = Test_other
+
+end exception \ No newline at end of file
diff --git a/test/ocaml/void/expect b/test/ocaml/void/expect
new file mode 100644
index 00000000..559bf40a
--- /dev/null
+++ b/test/ocaml/void/expect
@@ -0,0 +1 @@
+Before
diff --git a/test/ocaml/void/void.sail b/test/ocaml/void/void.sail
new file mode 100644
index 00000000..485ac019
--- /dev/null
+++ b/test/ocaml/void/void.sail
@@ -0,0 +1,14 @@
+
+val void : forall 'n, 'n = 'n + 1. atom('n) -> unit
+
+function void _ = ()
+
+val main : unit -> unit
+
+function main () = {
+ print("Before");
+ if false then {
+ print("After");
+ void(0);
+ }
+} \ No newline at end of file