aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/while.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/behavior/while.zig')
-rw-r--r--test/behavior/while.zig47
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;