diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-07-03 15:59:54 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-03 15:59:54 -0700 |
| commit | 17890f6b8a9a91c780377ac6cdcb22fc4180e929 (patch) | |
| tree | 330dae6f9a9c23e052e270c8cf333c5f80beded6 /test/behavior | |
| parent | 0dffab7356685c7643aa6e3cbe0ad1a18bc0dd55 (diff) | |
| parent | adf07183165eb910be6f8b13ae0192dab6ed59e7 (diff) | |
| download | zig-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.zig | 9 | ||||
| -rw-r--r-- | test/behavior/if.zig | 12 | ||||
| -rw-r--r-- | test/behavior/vector.zig | 18 |
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; +} |
