|
|
|
|
@@ -5,15 +5,6 @@ const expectEqual = std.testing.expectEqual;
|
|
|
|
|
const native_endian = builtin.cpu.arch.endian();
|
|
|
|
|
|
|
|
|
|
test "correct size of packed structs" {
|
|
|
|
|
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
|
|
|
|
|
|
|
|
|
const T1 = packed struct { one: u8, three: [3]u8 };
|
|
|
|
|
|
|
|
|
|
try expectEqual(4, @sizeOf(T1));
|
|
|
|
|
@@ -41,14 +32,7 @@ test "correct size of packed structs" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "flags in packed structs" {
|
|
|
|
|
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend != .stage1) return error.SkipZigTest;
|
|
|
|
|
|
|
|
|
|
const Flags1 = packed struct {
|
|
|
|
|
// byte 0
|
|
|
|
|
@@ -134,14 +118,7 @@ test "flags in packed structs" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "arrays in packed structs" {
|
|
|
|
|
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend != .stage1) return error.SkipZigTest;
|
|
|
|
|
|
|
|
|
|
const T1 = packed struct { array: [3][3]u8 };
|
|
|
|
|
const T2 = packed struct { array: [9]u8 };
|
|
|
|
|
@@ -153,14 +130,7 @@ test "arrays in packed structs" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "consistent size of packed structs" {
|
|
|
|
|
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend != .stage1) return error.SkipZigTest;
|
|
|
|
|
|
|
|
|
|
const TxData1 = packed struct { data: u8, _23: u23, full: bool = false };
|
|
|
|
|
const TxData2 = packed struct { data: u9, _22: u22, full: bool = false };
|
|
|
|
|
@@ -196,14 +166,7 @@ test "consistent size of packed structs" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "correct sizeOf and offsets in packed structs" {
|
|
|
|
|
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend != .stage1) return error.SkipZigTest;
|
|
|
|
|
|
|
|
|
|
const PStruct = packed struct {
|
|
|
|
|
bool_a: bool,
|
|
|
|
|
@@ -274,14 +237,7 @@ test "correct sizeOf and offsets in packed structs" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "nested packed structs" {
|
|
|
|
|
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend != .stage1) return error.SkipZigTest;
|
|
|
|
|
|
|
|
|
|
const S1 = packed struct { a: u8, b: u8, c: u8 };
|
|
|
|
|
|
|
|
|
|
@@ -324,14 +280,11 @@ test "nested packed structs" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "regular in irregular packed struct" {
|
|
|
|
|
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
|
|
|
|
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
|
|
|
|
|
|
|
|
|
const Irregular = packed struct {
|
|
|
|
|
bar: Regular = Regular{},
|
|
|
|
|
|