From 9f257b620d2fc5f0f7dba115fc135c5cc8eaccc6 Mon Sep 17 00:00:00 2001 From: MykolaMykhno Date: Tue, 31 Oct 2023 23:31:49 +0200 Subject: [PATCH] tests: Create seed corpus data --- tests/corpus/VkLayer_complex_file.json | 741 ++++++++++++++++++ tests/corpus/config.json | 99 +++ tests/corpus/config_with_other_arch.json | 99 +++ .../config_with_unordered_layer_location.json | 40 + 4 files changed, 979 insertions(+) create mode 100644 tests/corpus/VkLayer_complex_file.json create mode 100644 tests/corpus/config.json create mode 100644 tests/corpus/config_with_other_arch.json create mode 100644 tests/corpus/config_with_unordered_layer_location.json diff --git a/tests/corpus/VkLayer_complex_file.json b/tests/corpus/VkLayer_complex_file.json new file mode 100644 index 000000000..dde37e3a9 --- /dev/null +++ b/tests/corpus/VkLayer_complex_file.json @@ -0,0 +1,741 @@ +{ + "file_format_version": "1.2.0", + "layer": { + "test_code_description": "This file is literally a copy of an installed Validation layer manifest file for linux. It was chosen because it contains a lot of complex json structures that aren't present in the test framework's generated json, so exercises cJSON better", + "name": "VK_LAYER_KHRONOS_validation", + "type": "GLOBAL", + "library_path": "libVkLayer_khronos_validation.so", + "api_version": "1.3.231", + "implementation_version": "1", + "description": "Khronos Validation Layer", + "introduction": "The main, comprehensive Khronos validation layer.\n\nVulkan is an Explicit API, enabling direct control over how GPUs actually work. By design, minimal error checking is done inside a Vulkan driver. Applications have full control and responsibility for correct operation. Any errors in how Vulkan is used can result in a crash. \n\nThe Khronos Valiation Layer can be enabled to assist development by enabling developers to verify their applications correctly use the Vulkan API.", + "platforms": [ + "WINDOWS", + "LINUX", + "ANDROID", + "MACOS" + ], + "url": "https://vulkan.lunarg.com/doc/sdk/latest/windows/khronos_validation_layer.html", + "instance_extensions": [ + { + "name": "VK_EXT_debug_report", + "spec_version": "9" + }, + { + "name": "VK_EXT_debug_utils", + "spec_version": "1" + }, + { + "name": "VK_EXT_validation_features", + "spec_version": "2" + } + ], + "device_extensions": [ + { + "name": "VK_EXT_debug_marker", + "spec_version": "4", + "entrypoints": [ + "vkDebugMarkerSetObjectTagEXT", + "vkDebugMarkerSetObjectNameEXT", + "vkCmdDebugMarkerBeginEXT", + "vkCmdDebugMarkerEndEXT", + "vkCmdDebugMarkerInsertEXT" + ] + }, + { + "name": "VK_EXT_validation_cache", + "spec_version": "1", + "entrypoints": [ + "vkCreateValidationCacheEXT", + "vkDestroyValidationCacheEXT", + "vkGetValidationCacheDataEXT", + "vkMergeValidationCachesEXT" + ] + }, + { + "name": "VK_EXT_tooling_info", + "spec_version": "1", + "entrypoints": [ + "vkGetPhysicalDeviceToolPropertiesEXT" + ] + } + ], + "features": { + "presets": [ + { + "label": "Standard", + "description": "Good default validation setup that balance validation coverage and performance.", + "platforms": [ + "WINDOWS", + "LINUX", + "MACOS", + "ANDROID" + ], + "status": "STABLE", + "settings": [ + { + "key": "enables", + "value": [] + }, + { + "key": "disables", + "value": [ + "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT" + ] + } + ] + }, + { + "label": "Reduced-Overhead", + "description": "Disables some checks in the interest of better performance.", + "platforms": [ + "WINDOWS", + "LINUX", + "MACOS" + ], + "status": "STABLE", + "editor_state": "01110111111111111111111001111111111110", + "settings": [ + { + "key": "enables", + "value": [] + }, + { + "key": "disables", + "value": [ + "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", + "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", + "VALIDATION_CHECK_DISABLE_IMAGE_LAYOUT_VALIDATION", + "VALIDATION_CHECK_DISABLE_COMMAND_BUFFER_STATE", + "VALIDATION_CHECK_DISABLE_OBJECT_IN_USE", + "VALIDATION_CHECK_DISABLE_QUERY_VALIDATION" + ] + } + ] + }, + { + "label": "Best Practices", + "description": "Provides warnings on valid API usage that is potential API misuse.", + "platforms": [ + "WINDOWS", + "LINUX", + "MACOS", + "ANDROID" + ], + "status": "STABLE", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT" + ] + }, + { + "key": "disables", + "value": [ + "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", + "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", + "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", + "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", + "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT" + ] + } + ] + }, + { + "label": "Synchronization", + "description": "Identify resource access conflicts due to missing or incorrect synchronization operations between actions reading or writing the same regions of memory.", + "platforms": [ + "WINDOWS", + "LINUX", + "MACOS", + "ANDROID" + ], + "status": "STABLE", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT" + ] + }, + { + "key": "disables", + "value": [ + "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", + "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", + "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", + "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT" + ] + } + ] + }, + { + "label": "GPU-Assisted", + "description": "Check for API usage errors at shader execution time.", + "platforms": [ + "WINDOWS", + "LINUX" + ], + "status": "STABLE", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT", + "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT" + ] + }, + { + "key": "disables", + "value": [ + "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", + "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", + "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", + "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", + "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT" + ] + } + ] + }, + { + "label": "Debug Printf", + "description": "Debug shader code by \"printing\" any values of interest to the debug callback or stdout.", + "platforms": [ + "WINDOWS", + "LINUX" + ], + "status": "STABLE", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" + ] + }, + { + "key": "disables", + "value": [ + "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", + "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", + "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", + "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", + "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT" + ] + }, + { + "key": "enable_message_limit", + "value": false + } + ] + } + ], + "settings": [ + { + "key": "debug_action", + "label": "Debug Action", + "description": "Specifies what action is to be taken when a layer reports information", + "type": "FLAGS", + "flags": [ + { + "key": "VK_DBG_LAYER_ACTION_LOG_MSG", + "label": "Log Message", + "description": "Log a txt message to stdout or to a log filename.", + "settings": [ + { + "key": "log_filename", + "label": "Log Filename", + "description": "Specifies the output filename", + "type": "SAVE_FILE", + "default": "stdout", + "dependence": { + "mode": "ALL", + "settings": [ + { + "key": "debug_action", + "value": [ + "VK_DBG_LAYER_ACTION_LOG_MSG" + ] + } + ] + } + } + ] + }, + { + "key": "VK_DBG_LAYER_ACTION_CALLBACK", + "label": "Callback", + "description": "Call user defined callback function(s) that have been registered via the VK_EXT_debug_report extension. Since application must register callback, this is a NOOP for the settings file.", + "view": "HIDDEN" + }, + { + "key": "VK_DBG_LAYER_ACTION_DEBUG_OUTPUT", + "label": "Debug Output", + "description": "Log a txt message using the Windows OutputDebugString function.", + "platforms": [ + "WINDOWS" + ] + }, + { + "key": "VK_DBG_LAYER_ACTION_BREAK", + "label": "Break", + "description": "Trigger a breakpoint if a debugger is in use." + } + ], + "default": [ + "VK_DBG_LAYER_ACTION_LOG_MSG" + ] + }, + { + "key": "report_flags", + "label": "Message Severity", + "description": "Comma-delineated list of options specifying the types of messages to be reported", + "type": "FLAGS", + "flags": [ + { + "key": "info", + "label": "Info", + "description": "Report informational messages." + }, + { + "key": "warn", + "label": "Warning", + "description": "Report warnings from using the API in a manner which may lead to undefined behavior or to warn the user of common trouble spots. A warning does NOT necessarily signify illegal application behavior." + }, + { + "key": "perf", + "label": "Performance", + "description": "Report usage of the API that may cause suboptimal performance." + }, + { + "key": "error", + "label": "Error", + "description": "Report errors in API usage." + }, + { + "key": "debug", + "label": "Debug", + "description": "For layer development. Report messages for debugging layer behavior.", + "view": "HIDDEN" + } + ], + "default": [ + "error" + ] + }, + { + "key": "enable_message_limit", + "label": "Limit Duplicated Messages", + "description": "Enable limiting of duplicate messages.", + "type": "BOOL", + "default": true, + "settings": [ + { + "key": "duplicate_message_limit", + "env": "VK_LAYER_DUPLICATE_MESSAGE_LIMIT", + "label": "Max Duplicated Messages", + "description": "Maximum number of times any single validation message should be reported.", + "type": "INT", + "default": 10, + "range": { + "min": 1 + }, + "dependence": { + "mode": "ALL", + "settings": [ + { + "key": "enable_message_limit", + "value": true + } + ] + } + } + ] + }, + { + "key": "message_id_filter", + "label": "Mute Message VUIDs", + "description": "List of VUIDs and VUID identifers which are to be IGNORED by the validation layer", + "type": "LIST", + "env": "VK_LAYER_MESSAGE_ID_FILTER", + "default": [] + }, + { + "key": "disables", + "label": "Disables", + "description": "Specify areas of validation to be disabled", + "type": "FLAGS", + "env": "VK_LAYER_DISABLES", + "flags": [ + { + "key": "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", + "label": "Thread Safety", + "description": "Thread checks. In order to not degrade performance, it might be best to run your program with thread-checking disabled most of the time, enabling it occasionally for a quick sanity check or when debugging difficult application behaviors." + }, + { + "key": "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", + "label": "Stateless Parameter", + "description": "Stateless parameter checks. This may not always be necessary late in a development cycle." + }, + { + "key": "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", + "label": "Object Lifetime", + "description": "Object tracking checks. This may not always be necessary late in a development cycle." + }, + { + "key": "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT", + "label": "Core", + "description": "The main, heavy-duty validation checks. This may be valuable early in the development cycle to reduce validation output while correcting parameter/object usage errors." + }, + { + "key": "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", + "label": "Handle Wrapping", + "description": "Handle wrapping checks. Disable this feature if you are exerience crashes when creating new extensions or developing new Vulkan objects/structures." + }, + { + "key": "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT", + "label": "Shader Validation", + "description": "Shader checks. These checks can be CPU intensive during application start up, especially if Shader Validation Caching is also disabled.", + "view": "ADVANCED" + }, + { + "key": "VALIDATION_CHECK_DISABLE_COMMAND_BUFFER_STATE", + "label": "Command Buffer State", + "description": "Check that all Vulkan objects used by a command buffer have not been destroyed. These checks can be CPU intensive for some applications.", + "view": "ADVANCED" + }, + { + "key": "VALIDATION_CHECK_DISABLE_IMAGE_LAYOUT_VALIDATION", + "label": "Image Layout", + "description": "Check that the layout of each image subresource is correct whenever it is used by a command buffer. These checks are very CPU intensive for some applications.", + "view": "ADVANCED" + }, + { + "key": "VALIDATION_CHECK_DISABLE_QUERY_VALIDATION", + "label": "Query", + "description": "Checks for commands that use VkQueryPool objects.", + "view": "ADVANCED" + }, + { + "key": "VALIDATION_CHECK_DISABLE_OBJECT_IN_USE", + "label": "Object in Use", + "description": "Check that Vulkan objects are not in use by a command buffer when they are destroyed.", + "view": "ADVANCED" + }, + { + "key": "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT", + "label": "Shader Validation Caching", + "description": "Disable caching of shader validation results.", + "view": "ADVANCED" + } + ], + "default": [ + "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT" + ] + }, + { + "key": "enables", + "label": "Enables", + "description": "Setting an option here will enable specialized areas of validation", + "type": "FLAGS", + "env": "VK_LAYER_ENABLES", + "flags": [ + { + "key": "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT", + "label": "Synchronization", + "description": "This feature reports resource access conflicts due to missing or incorrect synchronization operations between actions (Draw, Copy, Dispatch, Blit) reading or writing the same regions of memory.", + "url": "${LUNARG_SDK}/synchronization_usage.html", + "status": "STABLE", + "platforms": [ + "WINDOWS", + "LINUX", + "MACOS", + "ANDROID" + ] + }, + { + "key": "VALIDATION_CHECK_ENABLE_SYNCHRONIZATION_VALIDATION_QUEUE_SUBMIT", + "label": "QueueSubmit Synchronization Validation", + "description": "Enable synchronization validation between submitted command buffers when Synchronization Validation is enabled.", + "status": "ALPHA" + }, + { + "key": "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT", + "label": "Debug Printf", + "description": "Enables processing of debug printf instructions in shaders and sending debug strings to the debug callback.", + "url": "${LUNARG_SDK}/debug_printf.html", + "status": "STABLE", + "platforms": [ + "WINDOWS", + "LINUX" + ], + "settings": [ + { + "key": "printf_to_stdout", + "label": "Redirect Printf messages to stdout", + "description": "Enable redirection of Debug Printf messages from the debug callback to stdout", + "type": "BOOL", + "default": true, + "platforms": [ + "WINDOWS", + "LINUX" + ], + "dependence": { + "mode": "ANY", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" + ] + } + ] + } + }, + { + "key": "printf_verbose", + "label": "Printf verbose", + "description": "Set the verbosity of debug printf messages", + "type": "BOOL", + "default": false, + "platforms": [ + "WINDOWS", + "LINUX" + ], + "dependence": { + "mode": "ANY", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" + ] + } + ] + } + }, + { + "key": "printf_buffer_size", + "label": "Printf buffer size", + "description": "Set the size in bytes of the buffer used by debug printf", + "type": "INT", + "default": 1024, + "range": { + "min": 128, + "max": 1048576 + }, + "unit": "bytes", + "platforms": [ + "WINDOWS", + "LINUX" + ], + "dependence": { + "mode": "ANY", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" + ] + } + ] + } + } + ] + }, + { + "key": "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT", + "label": "GPU-Assisted", + "description": "Check for API usage errors at shader execution time.", + "url": "${LUNARG_SDK}/gpu_validation.html", + "platforms": [ + "WINDOWS", + "LINUX" + ], + "settings": [ + { + "key": "gpuav_descriptor_indexing", + "label": "Check descriptor indexing accesses", + "description": "Enable descriptor indexing access checking", + "type": "BOOL", + "default": true, + "platforms": [ + "WINDOWS", + "LINUX" + ], + "dependence": { + "mode": "ANY", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" + ] + } + ] + } + }, + { + "key": "gpuav_buffer_oob", + "label": "Check Out of Bounds ", + "description": "Enable buffer out of bounds checking", + "type": "BOOL", + "default": true, + "platforms": [ + "WINDOWS", + "LINUX" + ], + "dependence": { + "mode": "ANY", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" + ] + } + ] + } + }, + { + "key": "validate_draw_indirect", + "label": "Check Draw Indirect Count Buffers and firstInstance values", + "description": "Enable draw indirect checking", + "type": "BOOL", + "default": true, + "platforms": [ + "WINDOWS", + "LINUX" + ], + "dependence": { + "mode": "ANY", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" + ] + } + ] + } + }, + { + "key": "validate_dispatch_indirect", + "label": "Check Dispatch Indirect group count values", + "description": "Enable dispatch indirect checking", + "type": "BOOL", + "default": true, + "platforms": [ + "WINDOWS", + "LINUX" + ], + "dependence": { + "mode": "ANY", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" + ] + } + ] + } + }, + { + "key": "vma_linear_output", + "label": "Use VMA linear memory allocations for GPU-AV output buffers", + "description": "Use linear allocation algorithm", + "type": "BOOL", + "default": true, + "platforms": [ + "WINDOWS", + "LINUX" + ], + "dependence": { + "mode": "ANY", + "settings": [ + { + "key": "enables", + "value": [ + "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" + ] + } + ] + } + } + ] + }, + { + "key": "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT", + "label": "Reserve Descriptor Set Binding Slot", + "description": "Specifies that the validation layers reserve a descriptor set binding slot for their own use. The layer reports a value for VkPhysicalDeviceLimits::maxBoundDescriptorSets that is one less than the value reported by the device. If the device supports the binding of only one descriptor set, the validation layer does not perform GPU-assisted validation.", + "platforms": [ + "WINDOWS", + "LINUX" + ] + }, + { + "key": "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT", + "label": "Best Practices", + "description": "Activating this feature enables the output of warnings related to common misuse of the API, but which are not explicitly prohibited by the specification.", + "url": "${LUNARG_SDK}/best_practices.html", + "platforms": [ + "WINDOWS", + "LINUX", + "MACOS", + "ANDROID" + ] + }, + { + "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_ARM", + "label": "ARM-specific best practices", + "description": "Activating this feature enables the output of warnings related to ARM-specific misuse of the API, but which are not explicitly prohibited by the specification.", + "platforms": [ + "WINDOWS", + "LINUX", + "MACOS", + "ANDROID" + ] + }, + { + "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_AMD", + "label": "AMD-specific best practices", + "description": "Adds check for spec-conforming but non-ideal code on AMD GPUs.", + "platforms": [ + "WINDOWS", + "LINUX", + "MACOS" + ] + }, + { + "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_NVIDIA", + "label": "NVIDIA-specific best practices", + "description": "Activating this feature enables the output of warnings related to NVIDIA-specific misuse of the API, but which are not explicitly prohibited by the specification.", + "platforms": [ + "WINDOWS", + "LINUX", + "ANDROID" + ] + } + ], + "default": [] + }, + { + "key": "fine_grained_locking", + "env": "VK_LAYER_FINE_GRAINED_LOCKING", + "label": "Fine Grained Locking", + "description": "Enable fine grained locking for Core Validation, which should improve performance in multithreaded applications. This setting allows the optimization to be disabled for debugging.", + "status": "STABLE", + "type": "BOOL", + "default": true, + "platforms": [ + "WINDOWS", + "LINUX", + "MACOS", + "ANDROID" + ] + } + ] + } + } +} diff --git a/tests/corpus/config.json b/tests/corpus/config.json new file mode 100644 index 000000000..99313efff --- /dev/null +++ b/tests/corpus/config.json @@ -0,0 +1,99 @@ +{ + "file_format_version": "1.2.0", + "settings_array": [ + { + "app_keys": [ + "/out/settings_fuzzer", + "/work/settings_fuzzer" + ], + "stderr_log": ["all", "info", "warn", "perf", "error", "debug", "layer", "driver", "validation"], + "log_locations": [ + { + "destinations":["/tmp"], + "filters":["all"] + } + ], + "layers": [ + { + "control": "auto", + "name": "test_auto", + "path": "test", + "treat_as_implicit_manifest": true + }, + { + "control": "on", + "name": "test_on", + "path": "test", + "treat_as_implicit_manifest": true + }, + { + "control": "off", + "name": "test_off", + "path": "test", + "treat_as_implicit_manifest": true + } + ] + }, + { + "app_keys": [ + "val1", + "val2", + "val3", + "val4" + ] + } + ], + "layers": [ + { + "name": "VK_LAYER_test_layer_1", + "type": "INSTANCE", + "api_version": "1.3.231", + "implementation_version": "1", + "description": "Test layer 1", + "library_path": "libVkLayer_khronos_validation.so", + "component_layers": ["VK_LAYER_test_layer_1", "VK_LAYER_test_layer_2"], + "disable_environment": { + "test_key": "test_value" + }, + "enable_environment": { + "test_key": "test_value" + }, + "app_keys": ["/out/settings_fuzzer"] + }, + { + "name": "VK_LAYER_test_layer_2", + "type": "GLOBAL", + "api_version": "1.3.231", + "implementation_version": "1", + "description": "Test layer 2", + "library_path": "libVkLayer_khronos_validation.so", + "component_layers": ["VK_LAYER_test_layer_1", "VK_LAYER_test_layer_2"], + "disable_environment": { + "test_key": "test_value" + }, + "enable_environment": { + "test_key": "test_value" + }, + "app_keys": ["/out/settings_fuzzer"] + }, + { + "name": "VK_LAYER_KHRONOS_validation", + "type": "GLOBAL", + "api_version": "1.3.231", + "implementation_version": "1", + "description": "Khronos validation", + "library_path": "libVkLayer_khronos_validation.so", + "disable_environment": { + "test_key": "test_value" + }, + "enable_environment": { + "test_key": "test_value" + }, + "app_keys": ["/out/settings_fuzzer"] + } + ], + "ICD": { + "library_path": "/src/vulkan-loader/tests/framework/data/binaries/libdummy_library_elf_32.so", + "api_version": "1.3.231" + } +} diff --git a/tests/corpus/config_with_other_arch.json b/tests/corpus/config_with_other_arch.json new file mode 100644 index 000000000..d39b08afc --- /dev/null +++ b/tests/corpus/config_with_other_arch.json @@ -0,0 +1,99 @@ +{ + "file_format_version": "1.2.0", + "settings_array": [ + { + "app_keys": [ + "/out/settings_fuzzer", + "/work/settings_fuzzer" + ], + "stderr_log": ["all", "info", "warn", "perf", "error", "debug", "layer", "driver", "validation"], + "log_locations": [ + { + "destinations":["/tmp"], + "filters":["all"] + } + ], + "layers": [ + { + "control": "auto", + "name": "test_auto", + "path": "test", + "treat_as_implicit_manifest": true + }, + { + "control": "on", + "name": "test_on", + "path": "test", + "treat_as_implicit_manifest": true + }, + { + "control": "off", + "name": "test_off", + "path": "test", + "treat_as_implicit_manifest": true + } + ] + }, + { + "app_keys": [ + "val1", + "val2", + "val3", + "val4" + ] + } + ], + "layers": [ + { + "name": "VK_LAYER_test_layer_1", + "type": "INSTANCE", + "api_version": "1.3.231", + "implementation_version": "1", + "description": "Test layer 1", + "library_path": "libVkLayer_khronos_validation.so", + "component_layers": ["VK_LAYER_test_layer_1", "VK_LAYER_test_layer_2"], + "disable_environment": { + "test_key": "test_value" + }, + "enable_environment": { + "test_key": "test_value" + }, + "app_keys": ["/out/settings_fuzzer"] + }, + { + "name": "VK_LAYER_test_layer_2", + "type": "GLOBAL", + "api_version": "1.3.231", + "implementation_version": "1", + "description": "Test layer 2", + "library_path": "libVkLayer_khronos_validation.so", + "component_layers": ["VK_LAYER_test_layer_1", "VK_LAYER_test_layer_2"], + "disable_environment": { + "test_key": "test_value" + }, + "enable_environment": { + "test_key": "test_value" + }, + "app_keys": ["/out/settings_fuzzer"] + }, + { + "name": "VK_LAYER_KHRONOS_validation", + "type": "GLOBAL", + "api_version": "1.3.231", + "implementation_version": "1", + "description": "Khronos validation", + "library_path": "libVkLayer_khronos_validation.so", + "disable_environment": { + "test_key": "test_value" + }, + "enable_environment": { + "test_key": "test_value" + }, + "app_keys": ["/out/settings_fuzzer"] + } + ], + "ICD": { + "library_path": "/src/vulkan-loader/tests/framework/data/binaries/libdummy_library_elf_64.so", + "api_version": "1.3.231" + } +} diff --git a/tests/corpus/config_with_unordered_layer_location.json b/tests/corpus/config_with_unordered_layer_location.json new file mode 100644 index 000000000..290d32e61 --- /dev/null +++ b/tests/corpus/config_with_unordered_layer_location.json @@ -0,0 +1,40 @@ +{ + "file_format_version": "1.2.0", + "settings_array": [ + { + "app_keys": [ + "/out/settings_fuzzer", + "/work/settings_fuzzer" + ], + "stderr_log": "/tmp/stderr.log", + "log_locations": [ + { + "destinations":["/tmp"], + "filters":["all"] + } + ], + "layers": [ + { + "control": "auto", + "name": "test", + "path": "test", + "treat_as_implicit_manifest": true + }, + { + "control": "unordered_layer_location", + "name": "test2", + "path": "test2", + "treat_as_implicit_manifest": true + } + ] + }, + { + "app_keys": [ + "val1", + "val2", + "val3", + "val4" + ] + } + ] +}