From 25e4b16e25502ca5e76e4049ed9f727168782dde Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Tue, 22 Feb 2022 14:15:09 +0100 Subject: Port more behavior tests --- test/behavior/while.zig | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'test/behavior/while.zig') diff --git a/test/behavior/while.zig b/test/behavior/while.zig index 15dd9ee54c..36926650da 100644 --- a/test/behavior/while.zig +++ b/test/behavior/while.zig @@ -1,7 +1,11 @@ const std = @import("std"); +const builtin = @import("builtin"); const expect = std.testing.expect; test "while loop" { + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + var i: i32 = 0; while (i < 4) { i += 1; @@ -19,6 +23,9 @@ fn whileLoop2() i32 { } test "static eval while" { + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + try expect(static_eval_while_number == 1); } const static_eval_while_number = staticWhileLoop1(); @@ -98,6 +105,10 @@ fn testBreakOuter() void { } test "while copies its payload" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + const S = struct { fn doTheTest() !void { var tmp: ?i32 = 10; @@ -131,6 +142,10 @@ fn runContinueAndBreakTest() !void { } test "while with optional as condition" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + numbers_left = 10; var sum: i32 = 0; while (getNumberOrNull()) |value| { @@ -140,6 +155,10 @@ test "while with optional as condition" { } test "while with optional as condition with else" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + numbers_left = 10; var sum: i32 = 0; var got_else: i32 = 0; @@ -154,6 +173,10 @@ test "while with optional as condition with else" { } test "while with error union condition" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + numbers_left = 10; var sum: i32 = 0; var got_else: i32 = 0; @@ -182,6 +205,10 @@ test "while on bool with else result follow break prong" { } test "while on optional with else result follow else prong" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + const result = while (returnNull()) |value| { break value; } else @as(i32, 2); @@ -189,6 +216,10 @@ test "while on optional with else result follow else prong" { } test "while on optional with else result follow break prong" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + const result = while (returnOptional(10)) |value| { break value; } else @as(i32, 2); @@ -215,6 +246,10 @@ fn returnTrue() bool { } test "return with implicit cast from while loop" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + returnWithImplicitCastFromWhileLoopTest() catch unreachable; } fn returnWithImplicitCastFromWhileLoopTest() anyerror!void { @@ -224,6 +259,10 @@ fn returnWithImplicitCastFromWhileLoopTest() anyerror!void { } test "while on error union with else result follow else prong" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + const result = while (returnError()) |value| { break value; } else |_| @as(i32, 2); @@ -231,6 +270,10 @@ test "while on error union with else result follow else prong" { } test "while on error union with else result follow break prong" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + const result = while (returnSuccess(10)) |value| { break value; } else |_| @as(i32, 2); @@ -253,6 +296,10 @@ test "while bool 2 break statements and an else" { } test "while optional 2 break statements and an else" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + const S = struct { fn entry(opt_t: ?bool, f: bool) !void { var ok = false; -- cgit v1.2.3