use kronos::*;
use std::mem;
#[test]
fn test_handle_sizes() {
assert_eq!(mem::size_of::<VkInstance>(), 8);
assert_eq!(mem::size_of::<VkDevice>(), 8);
assert_eq!(mem::size_of::<VkBuffer>(), 8);
assert_eq!(mem::size_of::<VkPipeline>(), 8);
}
#[test]
fn test_basic_types() {
assert_eq!(mem::size_of::<VkFlags>(), 4);
assert_eq!(mem::size_of::<VkBool32>(), 4);
assert_eq!(mem::size_of::<VkDeviceSize>(), 8);
}
#[test]
fn test_structure_sizes() {
assert_eq!(mem::size_of::<VkApplicationInfo>(), 48);
assert_eq!(mem::size_of::<VkInstanceCreateInfo>(), 64);
assert_eq!(mem::size_of::<VkDeviceCreateInfo>(), 72);
assert_eq!(mem::size_of::<VkPhysicalDeviceFeatures>(), 32); assert_eq!(mem::size_of::<VkMemoryTypeCache>(), 16);
assert_eq!(mem::size_of::<VkComputePipelineCreateInfo>(), 96);
assert_eq!(mem::size_of::<VkPipelineShaderStageCreateInfo>(), 48);
}
#[test]
fn test_alignment() {
assert_eq!(mem::align_of::<VkApplicationInfo>(), 8);
assert_eq!(mem::align_of::<VkBufferCreateInfo>(), 8);
assert_eq!(mem::align_of::<VkSubmitInfo>(), 8);
}
#[test]
fn test_enum_values() {
assert_eq!(VkResult::Success as i32, 0);
assert_eq!(VkResult::ErrorOutOfHostMemory as i32, -1);
assert_eq!(VkStructureType::ApplicationInfo as i32, 0);
assert_eq!(VkStructureType::InstanceCreateInfo as i32, 1);
assert_eq!(VkStructureType::ComputePipelineCreateInfo as i32, 29);
}
#[test]
fn test_flag_values() {
assert_eq!(VkQueueFlags::COMPUTE.bits(), 0x00000002);
assert_eq!(VkQueueFlags::TRANSFER.bits(), 0x00000004);
assert_eq!(VkMemoryPropertyFlags::DEVICE_LOCAL.bits(), 0x00000001);
assert_eq!(VkMemoryPropertyFlags::HOST_VISIBLE.bits(), 0x00000002);
assert_eq!(VkMemoryPropertyFlags::HOST_COHERENT.bits(), 0x00000004);
}
#[test]
fn test_constants() {
assert_eq!(VK_TRUE, 1);
assert_eq!(VK_FALSE, 0);
assert_eq!(VK_WHOLE_SIZE, !0u64);
assert_eq!(VK_QUEUE_FAMILY_IGNORED, !0u32);
}
#[test]
fn test_default_values() {
let app_info = VkApplicationInfo::default();
assert_eq!(app_info.sType, VkStructureType::ApplicationInfo);
assert!(app_info.pNext.is_null());
assert_eq!(app_info.apiVersion, VK_API_VERSION_1_0);
let buffer_info = VkBufferCreateInfo::default();
assert_eq!(buffer_info.sType, VkStructureType::BufferCreateInfo);
assert_eq!(buffer_info.sharingMode, VkSharingMode::Exclusive);
}
#[test]
fn test_memory_type_cache() {
let cache = VkMemoryTypeCache::default();
assert_eq!(cache.hostVisibleCoherent, 0);
assert_eq!(cache.deviceLocal, 0);
assert_eq!(cache.hostVisibleCached, 0);
assert_eq!(cache.deviceLocalLazy, 0);
}
#[test]
fn test_extent3d() {
let extent = VkExtent3D::default();
assert_eq!(extent.width, 1);
assert_eq!(extent.height, 1);
assert_eq!(extent.depth, 1);
}