use std::mem::{align_of, size_of};
use vulkan_rust_sys::*;
#[test]
fn application_info_layout() {
assert_eq!(size_of::<ApplicationInfo>(), 48);
assert_eq!(align_of::<ApplicationInfo>(), 8);
}
#[test]
fn instance_create_info_layout() {
assert_eq!(size_of::<InstanceCreateInfo>(), 64);
assert_eq!(align_of::<InstanceCreateInfo>(), 8);
}
#[test]
fn device_queue_create_info_layout() {
assert_eq!(size_of::<DeviceQueueCreateInfo>(), 40);
assert_eq!(align_of::<DeviceQueueCreateInfo>(), 8);
}
#[test]
fn device_create_info_layout() {
assert_eq!(size_of::<DeviceCreateInfo>(), 72);
assert_eq!(align_of::<DeviceCreateInfo>(), 8);
}
#[test]
fn buffer_create_info_layout() {
assert_eq!(size_of::<BufferCreateInfo>(), 56);
assert_eq!(align_of::<BufferCreateInfo>(), 8);
}
#[test]
fn allocation_callbacks_layout() {
assert_eq!(size_of::<AllocationCallbacks>(), 48);
assert_eq!(align_of::<AllocationCallbacks>(), 8);
}
#[test]
fn win32_surface_create_info_layout() {
assert_eq!(size_of::<Win32SurfaceCreateInfoKHR>(), 40);
assert_eq!(align_of::<Win32SurfaceCreateInfoKHR>(), 8);
}
#[test]
fn dispatchable_handle_is_pointer_sized() {
assert_eq!(size_of::<Instance>(), size_of::<usize>());
assert_eq!(size_of::<PhysicalDevice>(), size_of::<usize>());
assert_eq!(size_of::<Device>(), size_of::<usize>());
assert_eq!(size_of::<Queue>(), size_of::<usize>());
assert_eq!(size_of::<CommandBuffer>(), size_of::<usize>());
}
#[test]
fn non_dispatchable_handle_is_u64() {
assert_eq!(size_of::<Buffer>(), 8);
assert_eq!(size_of::<Image>(), 8);
assert_eq!(size_of::<DeviceMemory>(), 8);
assert_eq!(size_of::<Semaphore>(), 8);
assert_eq!(size_of::<Fence>(), 8);
assert_eq!(size_of::<SurfaceKHR>(), 8);
assert_eq!(size_of::<SwapchainKHR>(), 8);
assert_eq!(size_of::<Pipeline>(), 8);
assert_eq!(size_of::<PipelineLayout>(), 8);
assert_eq!(size_of::<RenderPass>(), 8);
assert_eq!(size_of::<Framebuffer>(), 8);
assert_eq!(size_of::<ShaderModule>(), 8);
assert_eq!(size_of::<DescriptorSetLayout>(), 8);
assert_eq!(size_of::<CommandPool>(), 8);
}
#[test]
fn enum_types_are_i32() {
assert_eq!(size_of::<Result>(), 4);
assert_eq!(size_of::<StructureType>(), 4);
assert_eq!(size_of::<Format>(), 4);
assert_eq!(size_of::<ImageType>(), 4);
assert_eq!(size_of::<SharingMode>(), 4);
}
#[test]
fn bitmask_types_are_u32() {
assert_eq!(size_of::<BufferUsageFlagBits>(), 4);
assert_eq!(size_of::<ImageUsageFlagBits>(), 4);
assert_eq!(size_of::<MemoryPropertyFlagBits>(), 4);
assert_eq!(size_of::<QueueFlagBits>(), 4);
}
#[test]
fn bitmask_64bit_types_are_u64() {
assert_eq!(size_of::<AccessFlagBits2>(), 8);
assert_eq!(size_of::<PipelineStageFlagBits2>(), 8);
assert_eq!(size_of::<FormatFeatureFlagBits2>(), 8);
assert_eq!(size_of::<PipelineCreateFlagBits2>(), 8);
assert_eq!(size_of::<BufferUsageFlagBits2>(), 8);
assert_eq!(size_of::<MemoryDecompressionMethodFlagBitsEXT>(), 8);
}
#[test]
fn memory_barrier2_layout() {
assert_eq!(size_of::<MemoryBarrier2>(), 48);
assert_eq!(align_of::<MemoryBarrier2>(), 8);
}
#[test]
fn bitmask_64bit_aliases_match_target_size() {
assert_eq!(
size_of::<PipelineCreateFlags2KHR>(),
size_of::<PipelineCreateFlagBits2>(),
);
assert_eq!(
size_of::<PipelineStageFlags2KHR>(),
size_of::<PipelineStageFlagBits2>(),
);
assert_eq!(
size_of::<MemoryDecompressionMethodFlagsNV>(),
size_of::<MemoryDecompressionMethodFlagBitsEXT>(),
);
}
#[test]
fn bitmask_64bit_has_high_bit_constants() {
assert!(
AccessFlagBits2::_2_SHADER_SAMPLED_READ.as_raw() > u32::MAX as u64,
"AccessFlagBits2 should have constants above u32::MAX"
);
assert!(
PipelineStageFlagBits2::_2_COPY.as_raw() > u32::MAX as u64,
"PipelineStageFlagBits2 should have constants above u32::MAX"
);
}
#[test]
fn clear_color_value_layout() {
assert_eq!(size_of::<ClearColorValue>(), 16);
assert_eq!(align_of::<ClearColorValue>(), 4);
}
#[test]
fn clear_value_layout() {
assert_eq!(size_of::<ClearValue>(), 16);
assert_eq!(align_of::<ClearValue>(), 4);
}
#[test]
fn device_or_host_address_layout() {
assert_eq!(size_of::<DeviceOrHostAddressKHR>(), 8);
assert_eq!(align_of::<DeviceOrHostAddressKHR>(), 8);
}
#[test]
fn performance_counter_result_layout() {
assert_eq!(size_of::<PerformanceCounterResultKHR>(), 8);
assert_eq!(align_of::<PerformanceCounterResultKHR>(), 8);
}