diff options
| author | Charles Giessen <charles@lunarg.com> | 2023-06-19 23:19:54 -0600 |
|---|---|---|
| committer | Charles Giessen <46324611+charles-lunarg@users.noreply.github.com> | 2023-06-20 14:23:27 -0600 |
| commit | 96ecde1d4f867fbeab06e270723ad68b245c97c3 (patch) | |
| tree | b36e4725036cbbd5900e20a3956b05cb2b07342e | |
| parent | 75850fe4796ff70873c5c2d5f72ac32cfbc79dd6 (diff) | |
| download | usermoji-96ecde1d4f867fbeab06e270723ad68b245c97c3.tar.xz | |
icd: Add AllocateCommandBuffer test
| -rw-r--r-- | tests/icd/mock_icd_tests.cpp | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/tests/icd/mock_icd_tests.cpp b/tests/icd/mock_icd_tests.cpp index 78372134..c2fcbf56 100644 --- a/tests/icd/mock_icd_tests.cpp +++ b/tests/icd/mock_icd_tests.cpp @@ -19,6 +19,7 @@ #include <stdlib.h> +#include <array> #include <iostream> #include <vector> @@ -29,17 +30,47 @@ #include "binary_locations.h" #if defined(WIN32) -int set_environment_var(const char* name, const char* value) { return SetEnvironmentVariableA(name, cur_value); } +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +int set_environment_var(const char* name, const char* value) { return SetEnvironmentVariable(name, value); } #else int set_environment_var(const char* name, const char* value) { return setenv(name, value, 1); } #endif -TEST(MockICD, Basic) { +void setup_mock_icd_env_vars() { // Necessary to point the loader at the mock driver set_environment_var("VK_DRIVER_FILES", MOCK_ICD_JSON_MANIFEST_PATH); // Prevents layers from being loaded at all set_environment_var("VK_LOADER_LAYERS_DISABLE", "~all~"); +} + +// Create an instance & device +class MockICD : public ::testing::Test { + protected: + void SetUp() override { + setup_mock_icd_env_vars(); + + VkInstanceCreateInfo instance_create_info{}; + VkResult res = vkCreateInstance(&instance_create_info, nullptr, &instance); + ASSERT_EQ(res, VK_SUCCESS); + + uint32_t count = 1; + res = vkEnumeratePhysicalDevices(instance, &count, &physical_device); + ASSERT_EQ(res, VK_SUCCESS); + + VkDeviceCreateInfo device_create_info{}; + res = vkCreateDevice(physical_device, &device_create_info, nullptr, &device); + ASSERT_EQ(res, VK_SUCCESS); + } + // void TearDown() override {} + VkInstance instance{}; + VkPhysicalDevice physical_device{}; + VkDevice device{}; +}; + +TEST_F(MockICD, Basic) { + setup_mock_icd_env_vars(); uint32_t count = 0; VkResult res = vkEnumerateInstanceExtensionProperties(nullptr, &count, nullptr); ASSERT_EQ(res, VK_SUCCESS); @@ -65,3 +96,14 @@ TEST(MockICD, Basic) { res = vkCreateDevice(phys_devs.at(0), &dev_create_info, nullptr, &device); ASSERT_EQ(res, VK_SUCCESS); } + +TEST_F(MockICD, AllocateCommandBuffers) { + VkCommandBufferAllocateInfo command_buffer_allocate_info{}; + command_buffer_allocate_info.commandBufferCount = 5; + std::array<VkCommandBuffer, 5> command_buffers; + VkResult res = vkAllocateCommandBuffers(device, &command_buffer_allocate_info, command_buffers.data()); + ASSERT_EQ(VK_SUCCESS, res); + for (const auto& command_buffer : command_buffers) { + ASSERT_NE(nullptr, command_buffer); + } +} |
