aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Giessen <charles@lunarg.com>2023-06-19 23:19:54 -0600
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>2023-06-20 14:23:27 -0600
commit96ecde1d4f867fbeab06e270723ad68b245c97c3 (patch)
treeb36e4725036cbbd5900e20a3956b05cb2b07342e
parent75850fe4796ff70873c5c2d5f72ac32cfbc79dd6 (diff)
downloadusermoji-96ecde1d4f867fbeab06e270723ad68b245c97c3.tar.xz
icd: Add AllocateCommandBuffer test
-rw-r--r--tests/icd/mock_icd_tests.cpp46
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);
+ }
+}