diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2022-02-22 14:15:09 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2022-02-22 21:57:42 +0100 |
| commit | 25e4b16e25502ca5e76e4049ed9f727168782dde (patch) | |
| tree | 947799ee1d22e621937c95842370cc7aee679412 /test/behavior/while.zig | |
| parent | a94267b2906e90aadf397b3f524e1069721fb496 (diff) | |
| download | zig-25e4b16e25502ca5e76e4049ed9f727168782dde.tar.gz zig-25e4b16e25502ca5e76e4049ed9f727168782dde.zip | |
Port more behavior tests
Diffstat (limited to 'test/behavior/while.zig')
| -rw-r--r-- | test/behavior/while.zig | 47 |
1 files changed, 47 insertions, 0 deletions
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; |
