From: Charles Giessen Date: Mon, 21 Feb 2022 18:31:27 +0000 (-0700) Subject: Add consecutive create instance and device tests X-Git-Tag: upstream/v1.3.207~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=df8899628a036b7d09b83c86b1b4228a4c26557e;p=platform%2Fupstream%2FVulkan-Loader.git Add consecutive create instance and device tests --- diff --git a/tests/loader_regression_tests.cpp b/tests/loader_regression_tests.cpp index e23a0262..40711615 100644 --- a/tests/loader_regression_tests.cpp +++ b/tests/loader_regression_tests.cpp @@ -113,6 +113,21 @@ TEST_F(CreateInstance, LayerPresent) { inst.CheckCreate(); } +TEST_F(CreateInstance, ConsecutiveCreate) { + for (uint32_t i = 0; i < 100; i++) { + InstWrapper inst{env->vulkan_functions}; + inst.CheckCreate(); + } +} + +TEST_F(CreateInstance, ConsecutiveCreateWithoutDestruction) { + std::vector instances; + for (uint32_t i = 0; i < 100; i++) { + instances.emplace_back(env->vulkan_functions); + instances.back().CheckCreate(); + } +} + TEST(NoDrivers, CreateInstance) { FrameworkEnvironment env{}; InstWrapper inst{env.vulkan_functions}; @@ -885,12 +900,53 @@ TEST_F(CreateDevice, LayersNotPresent) { ASSERT_EQ(families, family_props.properties); DeviceWrapper dev{inst}; - DeviceCreateInfo dev_create_info; dev.create_info.add_layer("NotPresent").add_device_queue(DeviceQueueCreateInfo{}.add_priority(0.0f)); dev.CheckCreate(phys_dev); } +TEST_F(CreateDevice, ConsecutiveCreate) { + auto& driver = env->get_test_icd(); + + MockQueueFamilyProperties family_props{{VK_QUEUE_GRAPHICS_BIT, 1, 0, {1, 1, 1}}, true}; + for (uint32_t i = 0; i < 100; i++) { + driver.physical_devices.emplace_back("physical_device_0"); + driver.physical_devices.back().queue_family_properties.push_back(family_props); + } + InstWrapper inst{env->vulkan_functions}; + inst.CheckCreate(); + + auto phys_devs = inst.GetPhysDevs(100); + for (uint32_t i = 0; i < 100; i++) { + DeviceWrapper dev{inst}; + dev.create_info.add_device_queue(DeviceQueueCreateInfo{}.add_priority(0.0f)); + dev.CheckCreate(phys_devs[i]); + } +} + +TEST_F(CreateDevice, ConsecutiveCreateWithoutDestruction) { + auto& driver = env->get_test_icd(); + + MockQueueFamilyProperties family_props{{VK_QUEUE_GRAPHICS_BIT, 1, 0, {1, 1, 1}}, true}; + for (uint32_t i = 0; i < 100; i++) { + driver.physical_devices.emplace_back("physical_device_0"); + driver.physical_devices.back().queue_family_properties.push_back(family_props); + } + InstWrapper inst{env->vulkan_functions}; + inst.CheckCreate(); + + auto phys_devs = inst.GetPhysDevs(100); + + std::vector devices; + for (uint32_t i = 0; i < 100; i++) { + devices.emplace_back(inst); + DeviceWrapper& dev = devices.back(); + dev.create_info.add_device_queue(DeviceQueueCreateInfo{}.add_priority(0.0f)); + + dev.CheckCreate(phys_devs[i]); + } +} + TEST(TryLoadWrongBinaries, WrongICD) { FrameworkEnvironment env{}; env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));