authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2015-12-08 15:46:36-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2015-12-08 15:46:36-07:00
log358d699fa9e879cf0e027b2fd60d9dc739dac642
treec30f039920637bc800dcc85e238ad3dab7d9ab9d
parente8550814c5e4387e8b758736a1254a5c3b32674e

add test for arrays


2 files changed, 70 insertions(+), 2 deletions(-)

example/arrays/arrays.zig+28-2
......@@ -7,9 +7,35 @@ extern {
77}
88
99export fn _start() -> unreachable {
10 let mut array : [i32; 10];
10 let mut array : [i32; 5];
1111
12 array[4] = array[1] + 5;
12 let mut i = 0;
13loop_start:
14 if i == 5 {
15 goto loop_end;
16 }
17 array[i] = i + 1;
18 i = array[i];
19 goto loop_start;
20
21loop_end:
22
23 i = 0;
24 let mut accumulator = 0;
25loop_2_start:
26 if i == 5 {
27 goto loop_2_end;
28 }
29
30 accumulator = accumulator + array[i];
31
32 i = i + 1;
33 goto loop_2_start;
34loop_2_end:
35
36 if accumulator == 15 {
37 puts("OK");
38 }
1339
1440 exit(0);
1541}
test/run_tests.cpp+42
......@@ -355,6 +355,48 @@ done:
355355 exit(0);
356356}
357357 )SOURCE", "zero\nloop\nloop\nloop\n");
358
359 add_simple_case("arrays", R"SOURCE(
360#link("c")
361extern {
362 fn puts(s: *const u8) -> i32;
363 fn exit(code: i32) -> unreachable;
364}
365
366export fn _start() -> unreachable {
367 let mut array : [i32; 5];
368
369 let mut i = 0;
370loop_start:
371 if i == 5 {
372 goto loop_end;
373 }
374 array[i] = i + 1;
375 i = array[i];
376 goto loop_start;
377
378loop_end:
379
380 i = 0;
381 let mut accumulator = 0;
382loop_2_start:
383 if i == 5 {
384 goto loop_2_end;
385 }
386
387 accumulator = accumulator + array[i];
388
389 i = i + 1;
390 goto loop_2_start;
391loop_2_end:
392
393 if accumulator == 15 {
394 puts("OK");
395 }
396
397 exit(0);
398}
399 )SOURCE", "OK\n");
358400}
359401
360402static void add_compile_failure_test_cases(void) {