]> git.lizzy.rs Git - rust.git/commitdiff
test: new codegen tests, rename hello.
authorGraydon Hoare <graydon@mozilla.com>
Wed, 17 Jul 2013 00:42:28 +0000 (17:42 -0700)
committerGraydon Hoare <graydon@mozilla.com>
Wed, 17 Jul 2013 00:44:57 +0000 (17:44 -0700)
src/test/codegen/hello.cc [deleted file]
src/test/codegen/hello.rs [deleted file]
src/test/codegen/iterate-over-array.cc [new file with mode: 0644]
src/test/codegen/iterate-over-array.rs [new file with mode: 0644]
src/test/codegen/scalar-function-call.cc [new file with mode: 0644]
src/test/codegen/scalar-function-call.rs [new file with mode: 0644]
src/test/codegen/small-dense-int-switch.cc [new file with mode: 0644]
src/test/codegen/small-dense-int-switch.rs [new file with mode: 0644]
src/test/codegen/stack-alloc-string-slice.cc [new file with mode: 0644]
src/test/codegen/stack-alloc-string-slice.rs [new file with mode: 0644]

diff --git a/src/test/codegen/hello.cc b/src/test/codegen/hello.cc
deleted file mode 100644 (file)
index 01eae9b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <stddef.h>
-
-struct slice {
-  char const *p;
-  size_t len;
-};
-
-extern "C"
-void test() {
-  struct slice s = { .p = "hello",
-                     .len = 5 };
-}
diff --git a/src/test/codegen/hello.rs b/src/test/codegen/hello.rs
deleted file mode 100644 (file)
index e7cd84f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#[no_mangle]
-fn test() {
-    let _x = "hello";
-}
diff --git a/src/test/codegen/iterate-over-array.cc b/src/test/codegen/iterate-over-array.cc
new file mode 100644 (file)
index 0000000..7eca21b
--- /dev/null
@@ -0,0 +1,17 @@
+#include <stdlib.h>
+#include <assert.h>
+
+struct slice {
+  int const *p;
+  size_t len;
+};
+
+extern "C"
+size_t test(slice s) {
+  size_t y = 0;
+  for (int i = 0; i < s.len; ++i) {
+       assert(i < s.len);
+       y += s.p[i];
+  }
+  return y;
+}
diff --git a/src/test/codegen/iterate-over-array.rs b/src/test/codegen/iterate-over-array.rs
new file mode 100644 (file)
index 0000000..cf54e6e
--- /dev/null
@@ -0,0 +1,10 @@
+#[no_mangle]
+fn test(x: &[int]) -> int {
+    let mut y = 0;
+    let mut i = 0;
+    while (i < x.len()) {
+        y += x[i];
+        i += 1;
+    }
+    y
+}
diff --git a/src/test/codegen/scalar-function-call.cc b/src/test/codegen/scalar-function-call.cc
new file mode 100644 (file)
index 0000000..91ed882
--- /dev/null
@@ -0,0 +1,10 @@
+#include <stdlib.h>
+
+size_t foo(size_t x) {
+    return x * x;
+}
+
+extern "C"
+void test() {
+    size_t x = foo(10);
+}
diff --git a/src/test/codegen/scalar-function-call.rs b/src/test/codegen/scalar-function-call.rs
new file mode 100644 (file)
index 0000000..7e4a566
--- /dev/null
@@ -0,0 +1,8 @@
+fn foo(x: int) -> int {
+    x * x
+}
+
+#[no_mangle]
+fn test() {
+    let x = foo(10);
+}
diff --git a/src/test/codegen/small-dense-int-switch.cc b/src/test/codegen/small-dense-int-switch.cc
new file mode 100644 (file)
index 0000000..87bc5bf
--- /dev/null
@@ -0,0 +1,11 @@
+#include <stdlib.h>
+
+extern "C"
+size_t test(size_t x, size_t y) {
+  switch (x) {
+  case 1: return y;
+  case 2: return y*2;
+  case 4: return y*3;
+  default: return 11;
+  }
+}
diff --git a/src/test/codegen/small-dense-int-switch.rs b/src/test/codegen/small-dense-int-switch.rs
new file mode 100644 (file)
index 0000000..6840dc7
--- /dev/null
@@ -0,0 +1,9 @@
+#[no_mangle]
+fn test(x: int, y: int) -> int {
+    match x {
+        1 => y,
+        2 => y*2,
+        4 => y*3,
+        _ => 11
+    }
+}
diff --git a/src/test/codegen/stack-alloc-string-slice.cc b/src/test/codegen/stack-alloc-string-slice.cc
new file mode 100644 (file)
index 0000000..01eae9b
--- /dev/null
@@ -0,0 +1,12 @@
+#include <stddef.h>
+
+struct slice {
+  char const *p;
+  size_t len;
+};
+
+extern "C"
+void test() {
+  struct slice s = { .p = "hello",
+                     .len = 5 };
+}
diff --git a/src/test/codegen/stack-alloc-string-slice.rs b/src/test/codegen/stack-alloc-string-slice.rs
new file mode 100644 (file)
index 0000000..e7cd84f
--- /dev/null
@@ -0,0 +1,4 @@
+#[no_mangle]
+fn test() {
+    let _x = "hello";
+}