aboutsummaryrefslogtreecommitdiff
path: root/test/behavior
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-07-03 15:59:54 -0700
committerGitHub <noreply@github.com>2023-07-03 15:59:54 -0700
commit17890f6b8a9a91c780377ac6cdcb22fc4180e929 (patch)
tree330dae6f9a9c23e052e270c8cf333c5f80beded6 /test/behavior
parent0dffab7356685c7643aa6e3cbe0ad1a18bc0dd55 (diff)
parentadf07183165eb910be6f8b13ae0192dab6ed59e7 (diff)
downloadzig-17890f6b8a9a91c780377ac6cdcb22fc4180e929.tar.gz
zig-17890f6b8a9a91c780377ac6cdcb22fc4180e929.zip
Merge pull request #15879 from r00ster91/more_stage1_test_coverage
More stage1 test coverage
Diffstat (limited to 'test/behavior')
-rw-r--r--test/behavior/alignof.zig9
-rw-r--r--test/behavior/if.zig12
-rw-r--r--test/behavior/vector.zig18
3 files changed, 39 insertions, 0 deletions
diff --git a/test/behavior/alignof.zig b/test/behavior/alignof.zig
index bacf69be57..b414b7e056 100644
--- a/test/behavior/alignof.zig
+++ b/test/behavior/alignof.zig
@@ -37,3 +37,12 @@ test "comparison of @alignOf(T) against zero" {
try expect(@alignOf(T) >= 0);
}
}
+
+test "correct alignment for elements and slices of aligned array" {
+ var buf: [1024]u8 align(64) = undefined;
+ var start: usize = 1;
+ var end: usize = undefined;
+ try expect(@alignOf(@TypeOf(buf[start..end])) == @alignOf(*u8));
+ try expect(@alignOf(@TypeOf(&buf[start..end])) == @alignOf(*u8));
+ try expect(@alignOf(@TypeOf(&buf[start])) == @alignOf(*u8));
+}
diff --git a/test/behavior/if.zig b/test/behavior/if.zig
index 49018cdfe2..a38f68cf91 100644
--- a/test/behavior/if.zig
+++ b/test/behavior/if.zig
@@ -151,3 +151,15 @@ test "result location with inferred type ends up being pointer to comptime_int"
} else @as(u32, 0);
try expect(c == 1);
}
+
+test "if-@as-if chain" {
+ var fast = true;
+ var very_fast = false;
+
+ const num_frames = if (fast)
+ @as(u32, if (very_fast) 16 else 4)
+ else
+ 1;
+
+ try expect(num_frames == 4);
+}
diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig
index 2aab98ea72..c2c2993f84 100644
--- a/test/behavior/vector.zig
+++ b/test/behavior/vector.zig
@@ -1370,3 +1370,21 @@ test "vector pointer is indexable" {
try expectEqual(@as(u32, 100), (&y)[0]);
try expectEqual(@as(u32, 200), (&y)[1]);
}
+
+test "boolean vector with 2 or more booleans" {
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
+
+ // TODO: try removing this after <https://github.com/ziglang/zig/issues/13782>:
+ if (!(builtin.os.tag == .linux and builtin.cpu.arch == .x86_64)) return;
+
+ const vec1 = @Vector(2, bool){ true, true };
+ _ = vec1;
+
+ const vec2 = @Vector(3, bool){ true, true, true };
+ _ = vec2;
+}