authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-23 14:06:07-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-23 14:06:07-07:00
logf27d3409bdbe4a2b1b59f0b7336e582488e35986
treee1a7049ef9c553c002f56b6307f581b71e927d0c
parenta2b0b0015d8a0c7aff451ae723ed2f30360ca33f

behavior tests: disable failing stage1 test

My previous commit added a new behavior test that passes for stage2 but I forgot to check whether it passes for stage1. Since it does not, it has to be disabled. Additionally, this commit organizes behavior tests; there is no longer a section of tests only passing for stage1. Instead, tests are disabled on an individual basis. There is an except for the file which has global assembly in it.

10 files changed, 237 insertions(+), 26 deletions(-)

test/behavior.zig+18-18
......@@ -4,16 +4,17 @@ test {
44 _ = @import("behavior/align.zig");
55 _ = @import("behavior/alignof.zig");
66 _ = @import("behavior/array.zig");
7 _ = @import("behavior/async_fn.zig");
78 _ = @import("behavior/atomics.zig");
9 _ = @import("behavior/await_struct.zig");
810 _ = @import("behavior/basic.zig");
911 _ = @import("behavior/bit_shifting.zig");
1012 _ = @import("behavior/bitcast.zig");
1113 _ = @import("behavior/bitreverse.zig");
12 _ = @import("behavior/byteswap.zig");
13 _ = @import("behavior/byval_arg_var.zig");
1414 _ = @import("behavior/bool.zig");
1515 _ = @import("behavior/bugs/394.zig");
1616 _ = @import("behavior/bugs/421.zig");
17 _ = @import("behavior/bugs/529.zig");
1718 _ = @import("behavior/bugs/624.zig");
1819 _ = @import("behavior/bugs/655.zig");
1920 _ = @import("behavior/bugs/656.zig");
......@@ -22,9 +23,11 @@ test {
2223 _ = @import("behavior/bugs/718.zig");
2324 _ = @import("behavior/bugs/726.zig");
2425 _ = @import("behavior/bugs/828.zig");
26 _ = @import("behavior/bugs/920.zig");
2527 _ = @import("behavior/bugs/1025.zig");
2628 _ = @import("behavior/bugs/1076.zig");
2729 _ = @import("behavior/bugs/1111.zig");
30 _ = @import("behavior/bugs/1120.zig");
2831 _ = @import("behavior/bugs/1277.zig");
2932 _ = @import("behavior/bugs/1310.zig");
3033 _ = @import("behavior/bugs/1381.zig");
......@@ -61,8 +64,10 @@ test {
6164 _ = @import("behavior/bugs/5474.zig");
6265 _ = @import("behavior/bugs/5487.zig");
6366 _ = @import("behavior/bugs/6456.zig");
67 _ = @import("behavior/bugs/6781.zig");
6468 _ = @import("behavior/bugs/6850.zig");
6569 _ = @import("behavior/bugs/7003.zig");
70 _ = @import("behavior/bugs/7027.zig");
6671 _ = @import("behavior/bugs/7047.zig");
6772 _ = @import("behavior/bugs/7250.zig");
6873 _ = @import("behavior/bugs/9584.zig");
......@@ -77,6 +82,8 @@ test {
7782 _ = @import("behavior/bugs/11181.zig");
7883 _ = @import("behavior/bugs/11182.zig");
7984 _ = @import("behavior/bugs/11213.zig");
85 _ = @import("behavior/byteswap.zig");
86 _ = @import("behavior/byval_arg_var.zig");
8087 _ = @import("behavior/call.zig");
8188 _ = @import("behavior/cast.zig");
8289 _ = @import("behavior/cast_int.zig");
......@@ -88,9 +95,9 @@ test {
8895 _ = @import("behavior/eval.zig");
8996 _ = @import("behavior/field_parent_ptr.zig");
9097 _ = @import("behavior/floatop.zig");
98 _ = @import("behavior/fn.zig");
9199 _ = @import("behavior/fn_delegation.zig");
92100 _ = @import("behavior/fn_in_struct_in_comptime.zig");
93 _ = @import("behavior/fn.zig");
94101 _ = @import("behavior/for.zig");
95102 _ = @import("behavior/generics.zig");
96103 _ = @import("behavior/hasdecl.zig");
......@@ -118,6 +125,7 @@ test {
118125 _ = @import("behavior/ref_var_in_if_after_if_2nd_switch_prong.zig");
119126 _ = @import("behavior/reflection.zig");
120127 _ = @import("behavior/saturating_arithmetic.zig");
128 _ = @import("behavior/select.zig");
121129 _ = @import("behavior/shuffle.zig");
122130 _ = @import("behavior/sizeof_and_typeof.zig");
123131 _ = @import("behavior/slice.zig");
......@@ -156,6 +164,13 @@ test {
156164 _ = @import("behavior/decltest.zig");
157165 }
158166
167 if (builtin.os.tag != .wasi) {
168 if (builtin.zig_backend == .stage1) {
169 // TODO get these tests passing with stage2
170 _ = @import("behavior/asm.zig");
171 }
172 }
173
159174 if (builtin.zig_backend != .stage2_arm and
160175 builtin.zig_backend != .stage2_x86_64 and
161176 builtin.zig_backend != .stage2_aarch64 and
......@@ -166,19 +181,4 @@ test {
166181 _ = @import("behavior/export.zig");
167182 _ = @import("behavior/export_self_referential_type_info.zig");
168183 }
169
170 if (builtin.zig_backend == .stage1) {
171 // TODO get these tests passing with stage2
172 if (builtin.os.tag != .wasi) {
173 _ = @import("behavior/asm.zig");
174 _ = @import("behavior/async_fn.zig");
175 }
176 _ = @import("behavior/await_struct.zig");
177 _ = @import("behavior/bugs/529.zig");
178 _ = @import("behavior/bugs/920.zig");
179 _ = @import("behavior/bugs/1120.zig");
180 _ = @import("behavior/bugs/6781.zig");
181 _ = @import("behavior/bugs/7027.zig");
182 _ = @import("behavior/select.zig");
183 }
184184}
test/behavior/async_fn.zig+196
......@@ -8,6 +8,9 @@ const expectError = std.testing.expectError;
88var global_x: i32 = 1;
99
1010test "simple coroutine suspend and resume" {
11 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
12 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
13
1114 var frame = async simpleAsyncFn();
1215 try expect(global_x == 2);
1316 resume frame;
......@@ -28,6 +31,9 @@ fn simpleAsyncFn() void {
2831var global_y: i32 = 1;
2932
3033test "pass parameter to coroutine" {
34 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
35 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
36
3137 var p = async simpleAsyncFnWithArg(2);
3238 try expect(global_y == 3);
3339 resume p;
......@@ -40,6 +46,9 @@ fn simpleAsyncFnWithArg(delta: i32) void {
4046}
4147
4248test "suspend at end of function" {
49 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
50 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
51
4352 const S = struct {
4453 var x: i32 = 1;
4554
......@@ -59,6 +68,9 @@ test "suspend at end of function" {
5968}
6069
6170test "local variable in async function" {
71 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
72 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
73
6274 const S = struct {
6375 var x: i32 = 0;
6476
......@@ -88,6 +100,9 @@ test "local variable in async function" {
88100}
89101
90102test "calling an inferred async function" {
103 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
104 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
105
91106 const S = struct {
92107 var x: i32 = 1;
93108 var other_frame: *@Frame(other) = undefined;
......@@ -112,6 +127,9 @@ test "calling an inferred async function" {
112127}
113128
114129test "@frameSize" {
130 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
131 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
132
115133 if (builtin.target.cpu.arch == .thumb or builtin.target.cpu.arch == .thumbeb)
116134 return error.SkipZigTest;
117135
......@@ -143,6 +161,9 @@ test "@frameSize" {
143161}
144162
145163test "coroutine suspend, resume" {
164 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
165 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
166
146167 const S = struct {
147168 var frame: anyframe = undefined;
148169
......@@ -184,6 +205,9 @@ test "coroutine suspend, resume" {
184205}
185206
186207test "coroutine suspend with block" {
208 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
209 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
210
187211 const p = async testSuspendBlock();
188212 _ = p;
189213 try expect(!global_result);
......@@ -210,6 +234,9 @@ var await_a_promise: anyframe = undefined;
210234var await_final_result: i32 = 0;
211235
212236test "coroutine await" {
237 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
238 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
239
213240 await_seq('a');
214241 var p = async await_amain();
215242 _ = p;
......@@ -247,6 +274,9 @@ fn await_seq(c: u8) void {
247274var early_final_result: i32 = 0;
248275
249276test "coroutine await early return" {
277 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
278 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
279
250280 early_seq('a');
251281 var p = async early_amain();
252282 _ = p;
......@@ -275,6 +305,9 @@ fn early_seq(c: u8) void {
275305}
276306
277307test "async function with dot syntax" {
308 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
309 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
310
278311 const S = struct {
279312 var y: i32 = 1;
280313 fn foo() callconv(.Async) void {
......@@ -288,6 +321,9 @@ test "async function with dot syntax" {
288321}
289322
290323test "async fn pointer in a struct field" {
324 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
325 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
326
291327 var data: i32 = 1;
292328 const Foo = struct {
293329 bar: fn (*i32) callconv(.Async) void,
......@@ -313,6 +349,9 @@ fn simpleAsyncFn2(y: *i32) callconv(.Async) void {
313349}
314350
315351test "@asyncCall with return type" {
352 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
353 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
354
316355 const Foo = struct {
317356 bar: fn () callconv(.Async) i32,
318357
......@@ -337,6 +376,9 @@ test "@asyncCall with return type" {
337376}
338377
339378test "async fn with inferred error set" {
379 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
380 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
381
340382 const S = struct {
341383 var global_frame: anyframe = undefined;
342384
......@@ -367,6 +409,9 @@ test "async fn with inferred error set" {
367409}
368410
369411test "error return trace across suspend points - early return" {
412 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
413 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
414
370415 const p = nonFailing();
371416 resume p;
372417 const p2 = async printTrace(p);
......@@ -374,6 +419,9 @@ test "error return trace across suspend points - early return" {
374419}
375420
376421test "error return trace across suspend points - async return" {
422 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
423 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
424
377425 const p = nonFailing();
378426 const p2 = async printTrace(p);
379427 _ = p2;
......@@ -404,6 +452,9 @@ fn printTrace(p: anyframe->(anyerror!void)) callconv(.Async) void {
404452}
405453
406454test "break from suspend" {
455 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
456 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
457
407458 var my_result: i32 = 1;
408459 const p = async testBreakFromSuspend(&my_result);
409460 _ = p;
......@@ -419,6 +470,9 @@ fn testBreakFromSuspend(my_result: *i32) callconv(.Async) void {
419470}
420471
421472test "heap allocated async function frame" {
473 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
474 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
475
422476 const S = struct {
423477 var x: i32 = 42;
424478
......@@ -443,6 +497,9 @@ test "heap allocated async function frame" {
443497}
444498
445499test "async function call return value" {
500 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
501 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
502
446503 const S = struct {
447504 var frame: anyframe = undefined;
448505 var pt = Point{ .x = 10, .y = 11 };
......@@ -484,6 +541,9 @@ test "async function call return value" {
484541}
485542
486543test "suspension points inside branching control flow" {
544 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
545 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
546
487547 const S = struct {
488548 var result: i32 = 10;
489549
......@@ -510,6 +570,9 @@ test "suspension points inside branching control flow" {
510570}
511571
512572test "call async function which has struct return type" {
573 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
574 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
575
513576 const S = struct {
514577 var frame: anyframe = undefined;
515578
......@@ -543,6 +606,9 @@ test "call async function which has struct return type" {
543606}
544607
545608test "pass string literal to async function" {
609 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
610 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
611
546612 const S = struct {
547613 var frame: anyframe = undefined;
548614 var ok: bool = false;
......@@ -564,6 +630,9 @@ test "pass string literal to async function" {
564630}
565631
566632test "await inside an errdefer" {
633 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
634 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
635
567636 const S = struct {
568637 var frame: anyframe = undefined;
569638
......@@ -587,6 +656,9 @@ test "await inside an errdefer" {
587656}
588657
589658test "try in an async function with error union and non-zero-bit payload" {
659 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
660 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
661
590662 const S = struct {
591663 var frame: anyframe = undefined;
592664 var ok = false;
......@@ -617,6 +689,9 @@ test "try in an async function with error union and non-zero-bit payload" {
617689}
618690
619691test "returning a const error from async function" {
692 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
693 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
694
620695 const S = struct {
621696 var frame: anyframe = undefined;
622697 var ok = false;
......@@ -648,6 +723,9 @@ test "returning a const error from async function" {
648723}
649724
650725test "async/await typical usage" {
726 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
727 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
728
651729 inline for ([_]bool{ false, true }) |b1| {
652730 inline for ([_]bool{ false, true }) |b2| {
653731 inline for ([_]bool{ false, true }) |b3| {
......@@ -743,6 +821,9 @@ fn testAsyncAwaitTypicalUsage(
743821}
744822
745823test "alignment of local variables in async functions" {
824 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
825 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
826
746827 const S = struct {
747828 fn doTheTest() !void {
748829 var y: u8 = 123;
......@@ -755,6 +836,9 @@ test "alignment of local variables in async functions" {
755836}
756837
757838test "no reason to resolve frame still works" {
839 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
840 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
841
758842 _ = async simpleNothing();
759843}
760844fn simpleNothing() void {
......@@ -763,6 +847,9 @@ fn simpleNothing() void {
763847}
764848
765849test "async call a generic function" {
850 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
851 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
852
766853 const S = struct {
767854 fn doTheTest() !void {
768855 var f = async func(i32, 2);
......@@ -783,6 +870,9 @@ test "async call a generic function" {
783870}
784871
785872test "return from suspend block" {
873 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
874 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
875
786876 const S = struct {
787877 fn doTheTest() !void {
788878 expect(func() == 1234) catch @panic("test failure");
......@@ -797,6 +887,9 @@ test "return from suspend block" {
797887}
798888
799889test "struct parameter to async function is copied to the frame" {
890 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
891 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
892
800893 const S = struct {
801894 const Point = struct {
802895 x: i32,
......@@ -841,6 +934,9 @@ test "struct parameter to async function is copied to the frame" {
841934}
842935
843936test "cast fn to async fn when it is inferred to be async" {
937 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
938 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
939
844940 const S = struct {
845941 var frame: anyframe = undefined;
846942 var ok = false;
......@@ -869,6 +965,9 @@ test "cast fn to async fn when it is inferred to be async" {
869965}
870966
871967test "cast fn to async fn when it is inferred to be async, awaited directly" {
968 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
969 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
970
872971 const S = struct {
873972 var frame: anyframe = undefined;
874973 var ok = false;
......@@ -896,6 +995,9 @@ test "cast fn to async fn when it is inferred to be async, awaited directly" {
896995}
897996
898997test "await does not force async if callee is blocking" {
998 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
999 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1000
8991001 const S = struct {
9001002 fn simple() i32 {
9011003 return 1234;
......@@ -906,6 +1008,9 @@ test "await does not force async if callee is blocking" {
9061008}
9071009
9081010test "recursive async function" {
1011 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1012 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1013
9091014 try expect(recursiveAsyncFunctionTest(false).doTheTest() == 55);
9101015 try expect(recursiveAsyncFunctionTest(true).doTheTest() == 55);
9111016}
......@@ -968,6 +1073,9 @@ fn recursiveAsyncFunctionTest(comptime suspending_implementation: bool) type {
9681073}
9691074
9701075test "@asyncCall with comptime-known function, but not awaited directly" {
1076 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1077 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1078
9711079 const S = struct {
9721080 var global_frame: anyframe = undefined;
9731081
......@@ -997,6 +1105,9 @@ test "@asyncCall with comptime-known function, but not awaited directly" {
9971105}
9981106
9991107test "@asyncCall with actual frame instead of byte buffer" {
1108 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1109 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1110
10001111 const S = struct {
10011112 fn func() i32 {
10021113 suspend {}
......@@ -1011,6 +1122,9 @@ test "@asyncCall with actual frame instead of byte buffer" {
10111122}
10121123
10131124test "@asyncCall using the result location inside the frame" {
1125 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1126 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1127
10141128 const S = struct {
10151129 fn simple2(y: *i32) callconv(.Async) i32 {
10161130 defer y.* += 2;
......@@ -1038,6 +1152,9 @@ test "@asyncCall using the result location inside the frame" {
10381152}
10391153
10401154test "@TypeOf an async function call of generic fn with error union type" {
1155 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1156 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1157
10411158 const S = struct {
10421159 fn func(comptime x: anytype) anyerror!i32 {
10431160 const T = @TypeOf(async func(x));
......@@ -1049,6 +1166,9 @@ test "@TypeOf an async function call of generic fn with error union type" {
10491166}
10501167
10511168test "using @TypeOf on a generic function call" {
1169 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1170 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1171
10521172 const S = struct {
10531173 var global_frame: anyframe = undefined;
10541174 var global_ok = false;
......@@ -1074,6 +1194,9 @@ test "using @TypeOf on a generic function call" {
10741194}
10751195
10761196test "recursive call of await @asyncCall with struct return type" {
1197 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1198 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1199
10771200 const S = struct {
10781201 var global_frame: anyframe = undefined;
10791202 var global_ok = false;
......@@ -1110,6 +1233,9 @@ test "recursive call of await @asyncCall with struct return type" {
11101233}
11111234
11121235test "nosuspend function call" {
1236 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1237 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1238
11131239 const S = struct {
11141240 fn doTheTest() !void {
11151241 const result = nosuspend add(50, 100);
......@@ -1126,6 +1252,9 @@ test "nosuspend function call" {
11261252}
11271253
11281254test "await used in expression and awaiting fn with no suspend but async calling convention" {
1255 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1256 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1257
11291258 const S = struct {
11301259 fn atest() void {
11311260 var f1 = async add(1, 2);
......@@ -1142,6 +1271,9 @@ test "await used in expression and awaiting fn with no suspend but async calling
11421271}
11431272
11441273test "await used in expression after a fn call" {
1274 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1275 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1276
11451277 const S = struct {
11461278 fn atest() void {
11471279 var f1 = async add(3, 4);
......@@ -1160,6 +1292,9 @@ test "await used in expression after a fn call" {
11601292}
11611293
11621294test "async fn call used in expression after a fn call" {
1295 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1296 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1297
11631298 const S = struct {
11641299 fn atest() void {
11651300 var sum: i32 = 0;
......@@ -1177,6 +1312,9 @@ test "async fn call used in expression after a fn call" {
11771312}
11781313
11791314test "suspend in for loop" {
1315 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1316 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1317
11801318 const S = struct {
11811319 var global_frame: ?anyframe = null;
11821320
......@@ -1203,6 +1341,9 @@ test "suspend in for loop" {
12031341}
12041342
12051343test "suspend in while loop" {
1344 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1345 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1346
12061347 const S = struct {
12071348 var global_frame: ?anyframe = null;
12081349
......@@ -1240,6 +1381,9 @@ test "suspend in while loop" {
12401381}
12411382
12421383test "correctly spill when returning the error union result of another async fn" {
1384 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1385 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1386
12431387 const S = struct {
12441388 var global_frame: anyframe = undefined;
12451389
......@@ -1263,6 +1407,9 @@ test "correctly spill when returning the error union result of another async fn"
12631407}
12641408
12651409test "spill target expr in a for loop" {
1410 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1411 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1412
12661413 const S = struct {
12671414 var global_frame: anyframe = undefined;
12681415
......@@ -1294,6 +1441,9 @@ test "spill target expr in a for loop" {
12941441}
12951442
12961443test "spill target expr in a for loop, with a var decl in the loop body" {
1444 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1445 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1446
12971447 const S = struct {
12981448 var global_frame: anyframe = undefined;
12991449
......@@ -1330,6 +1480,9 @@ test "spill target expr in a for loop, with a var decl in the loop body" {
13301480}
13311481
13321482test "async call with @call" {
1483 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1484 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1485
13331486 const S = struct {
13341487 var global_frame: anyframe = undefined;
13351488 fn doTheTest() void {
......@@ -1352,6 +1505,9 @@ test "async call with @call" {
13521505}
13531506
13541507test "async function passed 0-bit arg after non-0-bit arg" {
1508 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1509 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1510
13551511 const S = struct {
13561512 var global_frame: anyframe = undefined;
13571513 var global_int: i32 = 0;
......@@ -1373,6 +1529,9 @@ test "async function passed 0-bit arg after non-0-bit arg" {
13731529}
13741530
13751531test "async function passed align(16) arg after align(8) arg" {
1532 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1533 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1534
13761535 const S = struct {
13771536 var global_frame: anyframe = undefined;
13781537 var global_int: u128 = 0;
......@@ -1395,6 +1554,9 @@ test "async function passed align(16) arg after align(8) arg" {
13951554}
13961555
13971556test "async function call resolves target fn frame, comptime func" {
1557 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1558 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1559
13981560 const S = struct {
13991561 var global_frame: anyframe = undefined;
14001562 var global_int: i32 = 9;
......@@ -1417,6 +1579,9 @@ test "async function call resolves target fn frame, comptime func" {
14171579}
14181580
14191581test "async function call resolves target fn frame, runtime func" {
1582 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1583 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1584
14201585 const S = struct {
14211586 var global_frame: anyframe = undefined;
14221587 var global_int: i32 = 9;
......@@ -1440,6 +1605,9 @@ test "async function call resolves target fn frame, runtime func" {
14401605}
14411606
14421607test "properly spill optional payload capture value" {
1608 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1609 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1610
14431611 const S = struct {
14441612 var global_frame: anyframe = undefined;
14451613 var global_int: usize = 2;
......@@ -1464,6 +1632,9 @@ test "properly spill optional payload capture value" {
14641632}
14651633
14661634test "handle defer interfering with return value spill" {
1635 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1636 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1637
14671638 const S = struct {
14681639 var global_frame1: anyframe = undefined;
14691640 var global_frame2: anyframe = undefined;
......@@ -1504,6 +1675,9 @@ test "handle defer interfering with return value spill" {
15041675}
15051676
15061677test "take address of temporary async frame" {
1678 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1679 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1680
15071681 const S = struct {
15081682 var global_frame: anyframe = undefined;
15091683 var finished = false;
......@@ -1533,6 +1707,9 @@ test "take address of temporary async frame" {
15331707}
15341708
15351709test "nosuspend await" {
1710 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1711 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1712
15361713 const S = struct {
15371714 var finished = false;
15381715
......@@ -1554,6 +1731,9 @@ test "nosuspend await" {
15541731}
15551732
15561733test "nosuspend on function calls" {
1734 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1735 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1736
15571737 const S0 = struct {
15581738 b: i32 = 42,
15591739 };
......@@ -1570,6 +1750,9 @@ test "nosuspend on function calls" {
15701750}
15711751
15721752test "nosuspend on async function calls" {
1753 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1754 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1755
15731756 const S0 = struct {
15741757 b: i32 = 42,
15751758 };
......@@ -1588,6 +1771,7 @@ test "nosuspend on async function calls" {
15881771}
15891772
15901773// test "resume nosuspend async function calls" {
1774// if (builtin.zig_backend != .stage1) return error.SkipZigTest; // if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
15911775// const S0 = struct {
15921776// b: i32 = 42,
15931777// };
......@@ -1610,6 +1794,9 @@ test "nosuspend on async function calls" {
16101794// }
16111795
16121796test "nosuspend resume async function calls" {
1797 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1798 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1799
16131800 const S0 = struct {
16141801 b: i32 = 42,
16151802 };
......@@ -1632,6 +1819,9 @@ test "nosuspend resume async function calls" {
16321819}
16331820
16341821test "avoid forcing frame alignment resolution implicit cast to *anyopaque" {
1822 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1823 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1824
16351825 const S = struct {
16361826 var x: ?*anyopaque = null;
16371827
......@@ -1648,6 +1838,9 @@ test "avoid forcing frame alignment resolution implicit cast to *anyopaque" {
16481838}
16491839
16501840test "@asyncCall with pass-by-value arguments" {
1841 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1842 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1843
16511844 const F0: u64 = 0xbeefbeefbeefbeef;
16521845 const F1: u64 = 0xf00df00df00df00d;
16531846 const F2: u64 = 0xcafecafecafecafe;
......@@ -1681,6 +1874,9 @@ test "@asyncCall with pass-by-value arguments" {
16811874}
16821875
16831876test "@asyncCall with arguments having non-standard alignment" {
1877 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1878 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1879
16841880 const F0: u64 = 0xbeefbeef;
16851881 const F1: u64 = 0xf00df00df00df00d;
16861882
test/behavior/await_struct.zig+2
......@@ -10,6 +10,8 @@ var await_a_promise: anyframe = undefined;
1010var await_final_result = Foo{ .x = 0 };
1111
1212test "coroutine await struct" {
13 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
14
1315 await_seq('a');
1416 var p = async await_amain();
1517 _ = p;
test/behavior/bugs/1120.zig+2
......@@ -11,6 +11,8 @@ const B = packed struct {
1111 b: u6,
1212};
1313test "bug 1120" {
14 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; // TODO
15
1416 var a = A{ .a = 2, .b = 2 };
1517 var b = B{ .q = 22, .a = 3, .b = 2 };
1618 var t: usize = 0;
test/behavior/bugs/529.zig+2
......@@ -9,6 +9,8 @@ comptime {
99}
1010
1111test "issue 529 fixed" {
12 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; // TODO
13
1214 @import("529_other_file.zig").issue529(null);
1315 issue529(null);
1416}
test/behavior/bugs/6781.zig+2
......@@ -61,6 +61,8 @@ pub const JournalHeader = packed struct {
6161};
6262
6363test "fixed" {
64 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; // TODO
65
6466 var buffer = [_]u8{0} ** 65536;
6567 var entry = std.mem.bytesAsValue(JournalHeader, buffer[0..@sizeOf(JournalHeader)]);
6668 entry.* = .{
test/behavior/bugs/7027.zig+3-1
......@@ -13,7 +13,9 @@ fn foo(arg: anytype) void {
1313 _ = arg;
1414}
1515
16test "" {
16test {
17 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; // TODO
18
1719 comptime var foobar = Foobar.foo();
1820 foo(foobar.str[0..10]);
1921}
test/behavior/bugs/920.zig+2
......@@ -57,6 +57,8 @@ const NormalDist = blk: {
5757};
5858
5959test "bug 920 fixed" {
60 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; // TODO
61
6062 const NormalDist1 = blk: {
6163 break :blk ZigTableGen(true, norm_r, norm_v, norm_f, norm_f_inv, norm_zero_case);
6264 };
test/behavior/eval.zig+2
......@@ -833,6 +833,8 @@ test "const type-annotated local initialized with function call has correct type
833833}
834834
835835test "comptime pointer load through elem_ptr" {
836 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 fails this test
837
836838 const S = struct {
837839 x: usize,
838840 };
test/behavior/select.zig+8-7
......@@ -2,20 +2,21 @@ const std = @import("std");
22const builtin = @import("builtin");
33const mem = std.mem;
44const expect = std.testing.expect;
5const Vector = std.meta.Vector;
65
76test "@select" {
7 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; // TODO
8
89 const S = struct {
910 fn doTheTest() !void {
10 var a: Vector(4, bool) = [4]bool{ true, false, true, false };
11 var b: Vector(4, i32) = [4]i32{ -1, 4, 999, -31 };
12 var c: Vector(4, i32) = [4]i32{ -5, 1, 0, 1234 };
11 var a: @Vector(4, bool) = [4]bool{ true, false, true, false };
12 var b: @Vector(4, i32) = [4]i32{ -1, 4, 999, -31 };
13 var c: @Vector(4, i32) = [4]i32{ -5, 1, 0, 1234 };
1314 var abc = @select(i32, a, b, c);
1415 try expect(mem.eql(i32, &@as([4]i32, abc), &[4]i32{ -1, 1, 999, 1234 }));
1516
16 var x: Vector(4, bool) = [4]bool{ false, false, false, true };
17 var y: Vector(4, f32) = [4]f32{ 0.001, 33.4, 836, -3381.233 };
18 var z: Vector(4, f32) = [4]f32{ 0.0, 312.1, -145.9, 9993.55 };
17 var x: @Vector(4, bool) = [4]bool{ false, false, false, true };
18 var y: @Vector(4, f32) = [4]f32{ 0.001, 33.4, 836, -3381.233 };
19 var z: @Vector(4, f32) = [4]f32{ 0.0, 312.1, -145.9, 9993.55 };
1920 var xyz = @select(f32, x, y, z);
2021 try expect(mem.eql(f32, &@as([4]f32, xyz), &[4]f32{ 0.0, 312.1, -145.9, -3381.233 }));
2122 }