aboutsummaryrefslogtreecommitdiff
path: root/test/run_tests.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2015-12-08 15:46:36 -0700
committerAndrew Kelley <superjoe30@gmail.com>2015-12-08 15:46:36 -0700
commit358d699fa9e879cf0e027b2fd60d9dc739dac642 (patch)
treec30f039920637bc800dcc85e238ad3dab7d9ab9d /test/run_tests.cpp
parente8550814c5e4387e8b758736a1254a5c3b32674e (diff)
downloadzig-358d699fa9e879cf0e027b2fd60d9dc739dac642.tar.gz
zig-358d699fa9e879cf0e027b2fd60d9dc739dac642.zip
add test for arrays
Diffstat (limited to 'test/run_tests.cpp')
-rw-r--r--test/run_tests.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/run_tests.cpp b/test/run_tests.cpp
index 4a58f6df02..7bbe6be97b 100644
--- a/test/run_tests.cpp
+++ b/test/run_tests.cpp
@@ -355,6 +355,48 @@ done:
exit(0);
}
)SOURCE", "zero\nloop\nloop\nloop\n");
+
+ add_simple_case("arrays", R"SOURCE(
+#link("c")
+extern {
+ fn puts(s: *const u8) -> i32;
+ fn exit(code: i32) -> unreachable;
+}
+
+export fn _start() -> unreachable {
+ let mut array : [i32; 5];
+
+ let mut i = 0;
+loop_start:
+ if i == 5 {
+ goto loop_end;
+ }
+ array[i] = i + 1;
+ i = array[i];
+ goto loop_start;
+
+loop_end:
+
+ i = 0;
+ let mut accumulator = 0;
+loop_2_start:
+ if i == 5 {
+ goto loop_2_end;
+ }
+
+ accumulator = accumulator + array[i];
+
+ i = i + 1;
+ goto loop_2_start;
+loop_2_end:
+
+ if accumulator == 15 {
+ puts("OK");
+ }
+
+ exit(0);
+}
+ )SOURCE", "OK\n");
}
static void add_compile_failure_test_cases(void) {