aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/null.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-02-22 14:15:09 +0100
committerJakub Konka <kubkon@jakubkonka.com>2022-02-22 21:57:42 +0100
commit25e4b16e25502ca5e76e4049ed9f727168782dde (patch)
tree947799ee1d22e621937c95842370cc7aee679412 /test/behavior/null.zig
parenta94267b2906e90aadf397b3f524e1069721fb496 (diff)
downloadzig-25e4b16e25502ca5e76e4049ed9f727168782dde.tar.gz
zig-25e4b16e25502ca5e76e4049ed9f727168782dde.zip
Port more behavior tests
Diffstat (limited to 'test/behavior/null.zig')
-rw-r--r--test/behavior/null.zig29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/behavior/null.zig b/test/behavior/null.zig
index 35ecafff80..43c9355f3c 100644
--- a/test/behavior/null.zig
+++ b/test/behavior/null.zig
@@ -29,6 +29,10 @@ test "optional type" {
}
test "test maybe object and get a pointer to the inner value" {
+ 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;
+
var maybe_bool: ?bool = true;
if (maybe_bool) |*b| {
@@ -45,6 +49,10 @@ test "rhs maybe unwrap return" {
}
test "maybe return" {
+ 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;
+
try maybeReturnImpl();
comptime try maybeReturnImpl();
}
@@ -61,6 +69,10 @@ fn foo(x: ?i32) ?bool {
}
test "test null runtime" {
+ 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;
+
try testTestNullRuntime(null);
}
fn testTestNullRuntime(x: ?i32) !void {
@@ -69,6 +81,9 @@ fn testTestNullRuntime(x: ?i32) !void {
}
test "optional void" {
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
+
try optionalVoidImpl();
comptime try optionalVoidImpl();
}
@@ -89,6 +104,9 @@ fn bar(x: ?void) ?void {
const Empty = struct {};
test "optional struct{}" {
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
+
_ = try optionalEmptyStructImpl();
_ = comptime try optionalEmptyStructImpl();
}
@@ -107,17 +125,25 @@ fn baz(x: ?Empty) ?Empty {
}
test "null with default unwrap" {
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
+
const x: i32 = null orelse 1;
try expect(x == 1);
}
test "optional pointer to 0 bit type null value at runtime" {
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
+
const EmptyStruct = struct {};
var x: ?*EmptyStruct = null;
try expect(x == null);
}
test "if var maybe pointer" {
+ 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;
+
try expect(shouldBeAPlus1(Particle{
.a = 14,
.b = 1,
@@ -159,6 +185,9 @@ const here_is_a_null_literal = SillyStruct{ .context = null };
test "unwrap optional which is field of global var" {
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+ 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;
struct_with_optional.field = null;
if (struct_with_optional.field) |payload| {