summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ocaml/loop/expect100
-rw-r--r--test/ocaml/loop/loop.sail18
-rw-r--r--test/typecheck/pass/ex_cast.sail12
-rw-r--r--test/typecheck/pass/nzcv.sail4
4 files changed, 134 insertions, 0 deletions
diff --git a/test/ocaml/loop/expect b/test/ocaml/loop/expect
new file mode 100644
index 00000000..190423f8
--- /dev/null
+++ b/test/ocaml/loop/expect
@@ -0,0 +1,100 @@
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
diff --git a/test/ocaml/loop/loop.sail b/test/ocaml/loop/loop.sail
new file mode 100644
index 00000000..5ab0e817
--- /dev/null
+++ b/test/ocaml/loop/loop.sail
@@ -0,0 +1,18 @@
+
+val extern int -> string effect pure string_of_int = "string_of_big_int"
+
+val extern (int, int) -> int effect pure add = "add"
+val extern (int, int) -> bool effect pure lt = "lt_int"
+
+overload (deinfix +) [add]
+overload (deinfix <) [lt]
+
+val unit -> unit effect pure main
+
+function main () = {
+ (int) x := 0;
+ while x < 100 do {
+ x := x + 1;
+ print(string_of_int(x))
+ }
+}
diff --git a/test/typecheck/pass/ex_cast.sail b/test/typecheck/pass/ex_cast.sail
new file mode 100644
index 00000000..5ea22d14
--- /dev/null
+++ b/test/typecheck/pass/ex_cast.sail
@@ -0,0 +1,12 @@
+
+default Order dec
+
+val cast int -> exist 'n. [:'n:] effect pure ex_int
+
+val [:'n:] -> bit['n] effect pure zeros
+
+val int -> unit effect pure test
+
+function test n = {
+ x := zeros(n)
+}
diff --git a/test/typecheck/pass/nzcv.sail b/test/typecheck/pass/nzcv.sail
index a477cd97..3e23e529 100644
--- a/test/typecheck/pass/nzcv.sail
+++ b/test/typecheck/pass/nzcv.sail
@@ -4,6 +4,10 @@ val bit[4] -> unit effect pure test
function test nzcv =
{
+ N := 0b0;
+ Z := 0b0;
+ C := 0b0;
+ V := 0b0;
(N,Z,C,V) := nzcv;
()
}