authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-03-26 23:54:36-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-03-26 23:54:36-07:00
log95cc457d977c3a4671adfe61d482465cd262d17f
tree980e9dcd0d1e12eefe16d17802d074a7dbfb0d87
parent1f5617ac078041532dd5933ae1cf0ccb13c3cd8a

stage2: enable passing tests


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

test/stage2/llvm.zig+110-110
......@@ -61,55 +61,55 @@ pub fn addCases(ctx: *TestContext) !void {
6161 }
6262
6363 {
64 var case = ctx.exeUsingLlvmBackend("blocks", linux_x64);
65
66 case.addCompareOutput(
67 \\fn assert(ok: bool) void {
68 \\ if (!ok) unreachable;
69 \\}
70 \\
71 \\fn foo(ok: bool) i32 {
72 \\ const val: i32 = blk: {
73 \\ var x: i32 = 1;
74 \\ if (!ok) break :blk x + 9;
75 \\ break :blk x + 19;
76 \\ };
77 \\ return val + 10;
78 \\}
79 \\
80 \\export fn main() c_int {
81 \\ assert(foo(false) == 20);
82 \\ assert(foo(true) == 30);
83 \\ return 0;
84 \\}
85 , "");
64 var case = ctx.exeUsingLlvmBackend("blocks", linux_x64);
65
66 case.addCompareOutput(
67 \\fn assert(ok: bool) void {
68 \\ if (!ok) unreachable;
69 \\}
70 \\
71 \\fn foo(ok: bool) i32 {
72 \\ const val: i32 = blk: {
73 \\ var x: i32 = 1;
74 \\ if (!ok) break :blk x + 9;
75 \\ break :blk x + 19;
76 \\ };
77 \\ return val + 10;
78 \\}
79 \\
80 \\export fn main() c_int {
81 \\ assert(foo(false) == 20);
82 \\ assert(foo(true) == 30);
83 \\ return 0;
84 \\}
85 , "");
8686 }
8787
8888 {
89 var case = ctx.exeUsingLlvmBackend("nested blocks", linux_x64);
90
91 case.addCompareOutput(
92 \\fn assert(ok: bool) void {
93 \\ if (!ok) unreachable;
94 \\}
95 \\
96 \\fn foo(ok: bool) i32 {
97 \\ var val: i32 = blk: {
98 \\ const val2: i32 = another: {
99 \\ if (!ok) break :blk 10;
100 \\ break :another 10;
101 \\ };
102 \\ break :blk val2 + 10;
103 \\ };
104 \\ return val;
105 \\}
106 \\
107 \\export fn main() c_int {
108 \\ assert(foo(false) == 10);
109 \\ assert(foo(true) == 20);
110 \\ return 0;
111 \\}
112 , "");
89 var case = ctx.exeUsingLlvmBackend("nested blocks", linux_x64);
90
91 case.addCompareOutput(
92 \\fn assert(ok: bool) void {
93 \\ if (!ok) unreachable;
94 \\}
95 \\
96 \\fn foo(ok: bool) i32 {
97 \\ var val: i32 = blk: {
98 \\ const val2: i32 = another: {
99 \\ if (!ok) break :blk 10;
100 \\ break :another 10;
101 \\ };
102 \\ break :blk val2 + 10;
103 \\ };
104 \\ return val;
105 \\}
106 \\
107 \\export fn main() c_int {
108 \\ assert(foo(false) == 10);
109 \\ assert(foo(true) == 20);
110 \\ return 0;
111 \\}
112 , "");
113113 }
114114
115115 {
......@@ -134,70 +134,70 @@ pub fn addCases(ctx: *TestContext) !void {
134134 }
135135
136136 {
137 var case = ctx.exeUsingLlvmBackend("optionals", linux_x64);
138
139 case.addCompareOutput(
140 \\fn assert(ok: bool) void {
141 \\ if (!ok) unreachable;
142 \\}
143 \\
144 \\export fn main() c_int {
145 \\ var opt_val: ?i32 = 10;
146 \\ var null_val: ?i32 = null;
147 \\
148 \\ var val1: i32 = opt_val.?;
149 \\ const val1_1: i32 = opt_val.?;
150 \\ var ptr_val1 = &(opt_val.?);
151 \\ const ptr_val1_1 = &(opt_val.?);
152 \\
153 \\ var val2: i32 = null_val orelse 20;
154 \\ const val2_2: i32 = null_val orelse 20;
155 \\
156 \\ var value: i32 = 20;
157 \\ var ptr_val2 = &(null_val orelse value);
158 \\
159 \\ const val3 = opt_val orelse 30;
160 \\ var val3_var = opt_val orelse 30;
161 \\
162 \\ assert(val1 == 10);
163 \\ assert(val1_1 == 10);
164 \\ assert(ptr_val1.* == 10);
165 \\ assert(ptr_val1_1.* == 10);
166 \\
167 \\ assert(val2 == 20);
168 \\ assert(val2_2 == 20);
169 \\ assert(ptr_val2.* == 20);
170 \\
171 \\ assert(val3 == 10);
172 \\ assert(val3_var == 10);
173 \\
174 \\ (null_val orelse val2) = 1234;
175 \\ assert(val2 == 1234);
176 \\
177 \\ (opt_val orelse val2) = 5678;
178 \\ assert(opt_val.? == 5678);
179 \\
180 \\ return 0;
181 \\}
182 , "");
137 var case = ctx.exeUsingLlvmBackend("optionals", linux_x64);
138
139 case.addCompareOutput(
140 \\fn assert(ok: bool) void {
141 \\ if (!ok) unreachable;
142 \\}
143 \\
144 \\export fn main() c_int {
145 \\ var opt_val: ?i32 = 10;
146 \\ var null_val: ?i32 = null;
147 \\
148 \\ var val1: i32 = opt_val.?;
149 \\ const val1_1: i32 = opt_val.?;
150 \\ var ptr_val1 = &(opt_val.?);
151 \\ const ptr_val1_1 = &(opt_val.?);
152 \\
153 \\ var val2: i32 = null_val orelse 20;
154 \\ const val2_2: i32 = null_val orelse 20;
155 \\
156 \\ var value: i32 = 20;
157 \\ var ptr_val2 = &(null_val orelse value);
158 \\
159 \\ const val3 = opt_val orelse 30;
160 \\ var val3_var = opt_val orelse 30;
161 \\
162 \\ assert(val1 == 10);
163 \\ assert(val1_1 == 10);
164 \\ assert(ptr_val1.* == 10);
165 \\ assert(ptr_val1_1.* == 10);
166 \\
167 \\ assert(val2 == 20);
168 \\ assert(val2_2 == 20);
169 \\ assert(ptr_val2.* == 20);
170 \\
171 \\ assert(val3 == 10);
172 \\ assert(val3_var == 10);
173 \\
174 \\ (null_val orelse val2) = 1234;
175 \\ assert(val2 == 1234);
176 \\
177 \\ (opt_val orelse val2) = 5678;
178 \\ assert(opt_val.? == 5678);
179 \\
180 \\ return 0;
181 \\}
182 , "");
183183 }
184184
185 //{
186 // var case = ctx.exeUsingLlvmBackend("for loop", linux_x64);
187
188 // case.addCompareOutput(
189 // \\fn assert(ok: bool) void {
190 // \\ if (!ok) unreachable;
191 // \\}
192 // \\
193 // \\export fn main() c_int {
194 // \\ var x: u32 = 0;
195 // \\ for ("hello") |_| {
196 // \\ x += 1;
197 // \\ }
198 // \\ assert("hello".len == x);
199 // \\ return 0;
200 // \\}
201 // , "");
202 //}
185 {
186 var case = ctx.exeUsingLlvmBackend("for loop", linux_x64);
187
188 case.addCompareOutput(
189 \\fn assert(ok: bool) void {
190 \\ if (!ok) unreachable;
191 \\}
192 \\
193 \\export fn main() c_int {
194 \\ var x: u32 = 0;
195 \\ for ("hello") |_| {
196 \\ x += 1;
197 \\ }
198 \\ assert("hello".len == x);
199 \\ return 0;
200 \\}
201 , "");
202 }
203203}
test/stage2/wasm.zig+56-56
......@@ -43,24 +43,24 @@ pub fn addCases(ctx: *TestContext) !void {
4343 "42\n",
4444 );
4545
46 //case.addCompareOutput(
47 // \\export fn _start() f32 {
48 // \\ bar();
49 // \\ foo();
50 // \\ return 42.0;
51 // \\}
52 // \\fn foo() void {
53 // \\ bar();
54 // \\ bar();
55 // \\ bar();
56 // \\}
57 // \\fn bar() void {}
58 //,
59 //// This is what you get when you take the bits of the IEE-754
60 //// representation of 42.0 and reinterpret them as an unsigned
61 //// integer. Guess that's a bug in wasmtime.
62 // "1109917696\n",
63 //);
46 case.addCompareOutput(
47 \\export fn _start() f32 {
48 \\ bar();
49 \\ foo();
50 \\ return 42.0;
51 \\}
52 \\fn foo() void {
53 \\ bar();
54 \\ bar();
55 \\ bar();
56 \\}
57 \\fn bar() void {}
58 ,
59 // This is what you get when you take the bits of the IEE-754
60 // representation of 42.0 and reinterpret them as an unsigned
61 // integer. Guess that's a bug in wasmtime.
62 "1109917696\n",
63 );
6464
6565 case.addCompareOutput(
6666 \\export fn _start() u32 {
......@@ -71,33 +71,33 @@ pub fn addCases(ctx: *TestContext) !void {
7171 , "5\n");
7272 }
7373
74 //{
75 // var case = ctx.exe("wasm locals", wasi);
76
77 // case.addCompareOutput(
78 // \\export fn _start() u32 {
79 // \\ var i: u32 = 5;
80 // \\ var y: f32 = 42.0;
81 // \\ var x: u32 = 10;
82 // \\ return i;
83 // \\}
84 // , "5\n");
85
86 // case.addCompareOutput(
87 // \\export fn _start() u32 {
88 // \\ var i: u32 = 5;
89 // \\ var y: f32 = 42.0;
90 // \\ var x: u32 = 10;
91 // \\ foo(i, x);
92 // \\ i = x;
93 // \\ return i;
94 // \\}
95 // \\fn foo(x: u32, y: u32) void {
96 // \\ var i: u32 = 10;
97 // \\ i = x;
98 // \\}
99 // , "10\n");
100 //}
74 {
75 var case = ctx.exe("wasm locals", wasi);
76
77 case.addCompareOutput(
78 \\export fn _start() u32 {
79 \\ var i: u32 = 5;
80 \\ var y: f32 = 42.0;
81 \\ var x: u32 = 10;
82 \\ return i;
83 \\}
84 , "5\n");
85
86 case.addCompareOutput(
87 \\export fn _start() u32 {
88 \\ var i: u32 = 5;
89 \\ var y: f32 = 42.0;
90 \\ var x: u32 = 10;
91 \\ foo(i, x);
92 \\ i = x;
93 \\ return i;
94 \\}
95 \\fn foo(x: u32, y: u32) void {
96 \\ var i: u32 = 10;
97 \\ i = x;
98 \\}
99 , "10\n");
100 }
101101
102102 {
103103 var case = ctx.exe("wasm binary operands", wasi);
......@@ -202,16 +202,16 @@ pub fn addCases(ctx: *TestContext) !void {
202202 \\}
203203 , "10\n");
204204
205 //case.addCompareOutput(
206 // \\export fn _start() u32 {
207 // \\ var i: u32 = 0;
208 // \\ while(i < @as(u32, 10)){
209 // \\ var x: u32 = 1;
210 // \\ i += x;
211 // \\ if (i == @as(u32, 5)) break;
212 // \\ }
213 // \\ return i;
214 // \\}
215 //, "5\n");
205 case.addCompareOutput(
206 \\export fn _start() u32 {
207 \\ var i: u32 = 0;
208 \\ while(i < @as(u32, 10)){
209 \\ var x: u32 = 1;
210 \\ i += x;
211 \\ if (i == @as(u32, 5)) break;
212 \\ }
213 \\ return i;
214 \\}
215 , "5\n");
216216 }
217217}