From 75a09f45e8cbfac900e5ce3d85a59e1402163b7f Mon Sep 17 00:00:00 2001 From: Dmitry Boulytchev Date: Tue, 6 Nov 2018 14:03:55 +0300 Subject: [PATCH] Added test to x86only --- regression/x86only/orig/test002.log | 9 +++++ regression/x86only/test002.expr | 63 +++++++++++++++++++++++++++++ regression/x86only/test002.input | 1 + 3 files changed, 73 insertions(+) create mode 100644 regression/x86only/orig/test002.log create mode 100644 regression/x86only/test002.expr create mode 100644 regression/x86only/test002.input diff --git a/regression/x86only/orig/test002.log b/regression/x86only/orig/test002.log new file mode 100644 index 000000000..047d48e6c --- /dev/null +++ b/regression/x86only/orig/test002.log @@ -0,0 +1,9 @@ +1 +1 +1 +1 +1 +2 +3 +100 +`cons (3, `cons (2, `cons (1, `cons (6, `cons (5, `cons (4, `cons (3, `cons (2, `cons (1, `nil))))))))) diff --git a/regression/x86only/test002.expr b/regression/x86only/test002.expr new file mode 100644 index 000000000..37616d334 --- /dev/null +++ b/regression/x86only/test002.expr @@ -0,0 +1,63 @@ +fun collect_ints_acc (v, tail) local i { + case v of + a@#unboxed -> return `cons (a, tail) + | #string -> return tail + | _ -> + for i := 0, i < v.length, i := i + 1 do + tail := collect_ints_acc (v[i], tail) + od; + return tail + esac +} + +fun collect_ints (v) { + return collect_ints_acc (v, `nil) +} + +case 1 of + 5 -> write (5) +| 4 -> write (4) +| 3 -> write (3) +| 2 -> write (2) +| 1 -> write (1) +| 0 -> write (0) +esac; + +case 1 of + a@5 -> write (a) +| a@4 -> write (a) +| a@3 -> write (a) +| a@2 -> write (a) +| a@1 -> write (a) +| a@0 -> write (a) +esac; + +case `a (1, 2, 3) of + `a (1, 3, 5) -> write (0) +| `a (3, 4, 5) -> write (0) +| `a (1, 2, 3) -> write (1) +| `a (6, 7, 8) -> write (0) +esac; + +case "abc" of + "def" -> write (0) +| "ab" -> write (0) +| "abc" -> write (1) +| "" -> write (0) +esac; + +case [1, 2, 3] of + [] -> write (0) +| [a, b] -> write (0) +| [a, b, c] -> write (a); write (b); write (c) +| [_, _, _] -> write (0) +esac; + +case [1, 2, 3] of + [] -> write (0) +| [a, b] -> write (0) +| [_, _, _] -> write (100) +| [a, b, c] -> write (a); write (b); write (c) +esac; + +printf ("%s\n", collect_ints ([1, 2, 3, [4, 5, 6, `cons (1, 2, 3)]]).string) diff --git a/regression/x86only/test002.input b/regression/x86only/test002.input new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/regression/x86only/test002.input @@ -0,0 +1 @@ +0