tests: Add required parameter/error code tests
Add tests for the parameter_validation REQUIRED_PARAMETER and
FAILURE_RETURN_CODE error codes to layer_validation_tests.
Change-Id: I324901e411eb92dbaf0c7d232ae1d8bf63d433b1
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index dd53047..171c447 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -607,6 +607,24 @@
m_errorMonitor->VerifyFound();
}
+TEST_F(VkLayerTest, ReservedParameter) {
+ TEST_DESCRIPTION("Specify a non-zero value for a reserved parameter");
+
+ ASSERT_NO_FATAL_FAILURE(InitState());
+
+ m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT,
+ " must be 0");
+ // Specify 0 for a reserved VkFlags parameter
+ // Expected to trigger an error with
+ // parameter_validation::validate_reserved_flags
+ VkEvent event_handle = VK_NULL_HANDLE;
+ VkEventCreateInfo event_info = {};
+ event_info.sType = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
+ event_info.flags = 1;
+ vkCreateEvent(device(), &event_info, NULL, &event_handle);
+ m_errorMonitor->VerifyFound();
+}
+
TEST_F(VkLayerTest, InvalidStructSType) {
TEST_DESCRIPTION("Specify an invalid VkStructureType for a Vulkan "
"structure's sType field");
@@ -736,6 +754,26 @@
vkCreateSampler(m_device->device(), &sampler_info, NULL, &sampler);
m_errorMonitor->VerifyFound();
}
+
+TEST_F(VkLayerTest, FailedReturnValue) {
+ TEST_DESCRIPTION("Check for a message describing a VkResult failure code");
+
+ ASSERT_NO_FATAL_FAILURE(InitState());
+
+ m_errorMonitor->SetDesiredFailureMsg(
+ VK_DEBUG_REPORT_WARNING_BIT_EXT,
+ "the requested format is not supported on this device");
+ // Specify invalid VkFormat value to generate a
+ // VK_ERROR_FORMAT_NOT_SUPPORTED return code
+ // Expected to trigger a warning from parameter_validation::validate_result
+ VkImageFormatProperties image_format_properties;
+ VkResult err = vkGetPhysicalDeviceImageFormatProperties(
+ gpu(), static_cast<VkFormat>(0x8000), VK_IMAGE_TYPE_2D,
+ VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, 0,
+ &image_format_properties);
+ ASSERT_TRUE(err == VK_ERROR_FORMAT_NOT_SUPPORTED);
+ m_errorMonitor->VerifyFound();
+}
#endif // PARAMETER_VALIDATION_TESTS
#if MEM_TRACKER_TESTS