about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2013-07-16 17:42:28 -0700
committerGraydon Hoare <graydon@mozilla.com>2013-07-16 17:44:57 -0700
commit40f74341f3ba2cee2afedb31014ee14432d700cd (patch)
treeef23525a041d4adc8f8898ffd9e375962cee7776 /src
parent53e934c2ab773eaf61da331893d176aa3e62230b (diff)
downloadrust-40f74341f3ba2cee2afedb31014ee14432d700cd.tar.gz
rust-40f74341f3ba2cee2afedb31014ee14432d700cd.zip
test: new codegen tests, rename hello.
Diffstat (limited to 'src')
-rw-r--r--src/test/codegen/iterate-over-array.cc17
-rw-r--r--src/test/codegen/iterate-over-array.rs10
-rw-r--r--src/test/codegen/scalar-function-call.cc10
-rw-r--r--src/test/codegen/scalar-function-call.rs8
-rw-r--r--src/test/codegen/small-dense-int-switch.cc11
-rw-r--r--src/test/codegen/small-dense-int-switch.rs9
-rw-r--r--src/test/codegen/stack-alloc-string-slice.cc (renamed from src/test/codegen/hello.cc)0
-rw-r--r--src/test/codegen/stack-alloc-string-slice.rs (renamed from src/test/codegen/hello.rs)0
8 files changed, 65 insertions, 0 deletions
diff --git a/src/test/codegen/iterate-over-array.cc b/src/test/codegen/iterate-over-array.cc
new file mode 100644
index 00000000000..7eca21b13d7
--- /dev/null
+++ b/src/test/codegen/iterate-over-array.cc
@@ -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
index 00000000000..cf54e6eafba
--- /dev/null
+++ b/src/test/codegen/iterate-over-array.rs
@@ -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
index 00000000000..91ed882f68a
--- /dev/null
+++ b/src/test/codegen/scalar-function-call.cc
@@ -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
index 00000000000..7e4a566749b
--- /dev/null
+++ b/src/test/codegen/scalar-function-call.rs
@@ -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
index 00000000000..87bc5bf852e
--- /dev/null
+++ b/src/test/codegen/small-dense-int-switch.cc
@@ -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
index 00000000000..6840dc7411b
--- /dev/null
+++ b/src/test/codegen/small-dense-int-switch.rs
@@ -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/hello.cc b/src/test/codegen/stack-alloc-string-slice.cc
index 01eae9b16bb..01eae9b16bb 100644
--- a/src/test/codegen/hello.cc
+++ b/src/test/codegen/stack-alloc-string-slice.cc
diff --git a/src/test/codegen/hello.rs b/src/test/codegen/stack-alloc-string-slice.rs
index e7cd84f63f2..e7cd84f63f2 100644
--- a/src/test/codegen/hello.rs
+++ b/src/test/codegen/stack-alloc-string-slice.rs