From 9216c81855c8d2e0da76bc1419be9f0f8da036fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Petit?= Date: Tue, 18 Feb 2025 18:54:03 +0000 Subject: [PATCH] Migrate test_vulkan to the new registration framework (#2278) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Kévin Petit --- test_conformance/vulkan/main.cpp | 34 +------- test_conformance/vulkan/procs.h | 79 ------------------- .../vulkan/test_vulkan_api_consistency.cpp | 23 ++---- ...st_vulkan_api_consistency_for_1dimages.cpp | 9 +-- ...st_vulkan_api_consistency_for_3dimages.cpp | 9 +-- .../vulkan/test_vulkan_interop_buffer.cpp | 64 ++++++--------- .../vulkan/test_vulkan_interop_image.cpp | 10 +-- .../test_vulkan_platform_device_info.cpp | 11 +-- 8 files changed, 50 insertions(+), 189 deletions(-) delete mode 100644 test_conformance/vulkan/procs.h diff --git a/test_conformance/vulkan/main.cpp b/test_conformance/vulkan/main.cpp index 7be31b23..d2d278da 100644 --- a/test_conformance/vulkan/main.cpp +++ b/test_conformance/vulkan/main.cpp @@ -30,35 +30,8 @@ #include #endif -#include "procs.h" #include "harness/testHarness.h" -#if !defined(_WIN32) -#include -#endif - -#define BUFFERSIZE 3000 - -test_definition test_list[] = { ADD_TEST(buffer_single_queue), - ADD_TEST(buffer_multiple_queue), - ADD_TEST(buffer_multiImport_sameCtx), - ADD_TEST(buffer_multiImport_diffCtx), - ADD_TEST(buffer_single_queue_fence), - ADD_TEST(buffer_multiple_queue_fence), - ADD_TEST(buffer_multiImport_sameCtx_fence), - ADD_TEST(buffer_multiImport_diffCtx_fence), - ADD_TEST(image_single_queue), - ADD_TEST(image_multiple_queue), - ADD_TEST(consistency_external_buffer), - ADD_TEST(consistency_external_image), - ADD_TEST(consistency_external_for_3dimage), - ADD_TEST(consistency_external_for_1dimage), - ADD_TEST(consistency_external_semaphore), - ADD_TEST(platform_info), - ADD_TEST(device_info) }; - -const int test_num = ARRAY_SIZE(test_list); - unsigned int numCQ; bool multiImport; bool multiCtx; @@ -75,9 +48,9 @@ static void printUsage(const char *execName) log_info("Usage: %s [test_names] [options]\n", execName); log_info("Test names:\n"); - for (int i = 0; i < test_num; i++) + for (int i = 0; i < test_registry::getInstance().num_tests(); i++) { - log_info("\t%s\n", test_list[i].name); + log_info("\t%s\n", test_registry::getInstance().definitions()[i].name); } log_info("\n"); log_info("Options:\n"); @@ -178,5 +151,6 @@ int main(int argc, const char *argv[]) size_t argCount = parseParams(argc, argv, argList); if (argCount == 0) return 0; - return runTestHarness(argc, argv, test_num, test_list, false, 0); + return runTestHarness(argc, argv, test_registry::getInstance().num_tests(), + test_registry::getInstance().definitions(), false, 0); } diff --git a/test_conformance/vulkan/procs.h b/test_conformance/vulkan/procs.h deleted file mode 100644 index 71fad68f..00000000 --- a/test_conformance/vulkan/procs.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// Copyright (c) 2022 The Khronos Group Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#include "harness/mt19937.h" - -extern int test_vulkan_interop_buffer(cl_device_id device, cl_context context, - cl_command_queue queue, int num_elements); -extern int test_vulkan_interop_image(cl_device_id device, cl_context context, - cl_command_queue queue, int num_elements); -extern int test_consistency_external_buffer(cl_device_id device, - cl_context context, - cl_command_queue queue, - int num_elements); -extern int test_consistency_external_image(cl_device_id device, - cl_context context, - cl_command_queue queue, - int num_elements); -extern int test_consistency_external_for_3dimage(cl_device_id device, - cl_context context, - cl_command_queue queue, - int num_elements); -extern int test_consistency_external_for_1dimage(cl_device_id device, - cl_context context, - cl_command_queue queue, - int num_elements); -extern int test_consistency_external_semaphore(cl_device_id device, - cl_context context, - cl_command_queue queue, - int num_elements); -extern int test_platform_info(cl_device_id device, cl_context context, - cl_command_queue queue, int num_elements); -extern int test_device_info(cl_device_id device, cl_context context, - cl_command_queue queue, int num_elements); -extern int test_buffer_single_queue(cl_device_id device_, cl_context context_, - cl_command_queue queue_, int numElements_); -extern int test_buffer_multiple_queue(cl_device_id device_, cl_context context_, - cl_command_queue queue_, - int numElements_); -extern int test_buffer_multiImport_sameCtx(cl_device_id device_, - cl_context context_, - cl_command_queue queue_, - int numElements_); -extern int test_buffer_multiImport_diffCtx(cl_device_id device_, - cl_context context_, - cl_command_queue queue_, - int numElements_); -extern int test_buffer_single_queue_fence(cl_device_id device_, - cl_context context_, - cl_command_queue queue_, - int numElements_); -extern int test_buffer_multiple_queue_fence(cl_device_id device_, - cl_context context_, - cl_command_queue queue_, - int numElements_); -extern int test_buffer_multiImport_sameCtx_fence(cl_device_id device_, - cl_context context_, - cl_command_queue queue_, - int numElements_); -extern int test_buffer_multiImport_diffCtx_fence(cl_device_id device_, - cl_context context_, - cl_command_queue queue_, - int numElements_); -extern int test_image_single_queue(cl_device_id device_, cl_context context_, - cl_command_queue queue_, int numElements_); -extern int test_image_multiple_queue(cl_device_id device_, cl_context context_, - cl_command_queue queue_, int numElements_); diff --git a/test_conformance/vulkan/test_vulkan_api_consistency.cpp b/test_conformance/vulkan/test_vulkan_api_consistency.cpp index 06b48fb0..a148c5d3 100644 --- a/test_conformance/vulkan/test_vulkan_api_consistency.cpp +++ b/test_conformance/vulkan/test_vulkan_api_consistency.cpp @@ -503,27 +503,20 @@ struct ConsistencyExternalSemaphoreTest : public VulkanTestBase } // anonymous namespace -int test_consistency_external_buffer(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_consistency_external_buffer) { - return MakeAndRunTest( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest(device, context, queue, + num_elements); } -int test_consistency_external_image(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_consistency_external_image) { - return MakeAndRunTest( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest(device, context, queue, + num_elements); } -int test_consistency_external_semaphore(cl_device_id deviceID, - cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_consistency_external_semaphore) { return MakeAndRunTest( - deviceID, context, defaultQueue, num_elements); + device, context, queue, num_elements); } diff --git a/test_conformance/vulkan/test_vulkan_api_consistency_for_1dimages.cpp b/test_conformance/vulkan/test_vulkan_api_consistency_for_1dimages.cpp index 346a3ce5..a90d7754 100644 --- a/test_conformance/vulkan/test_vulkan_api_consistency_for_1dimages.cpp +++ b/test_conformance/vulkan/test_vulkan_api_consistency_for_1dimages.cpp @@ -204,11 +204,8 @@ struct ConsistencyExternalImage1DTest : public VulkanTestBase }; } -int test_consistency_external_for_1dimage(cl_device_id deviceID, - cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_consistency_external_for_1dimage) { - return MakeAndRunTest( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest(device, context, + queue, num_elements); } diff --git a/test_conformance/vulkan/test_vulkan_api_consistency_for_3dimages.cpp b/test_conformance/vulkan/test_vulkan_api_consistency_for_3dimages.cpp index 8dd9ae9a..0beb8d18 100644 --- a/test_conformance/vulkan/test_vulkan_api_consistency_for_3dimages.cpp +++ b/test_conformance/vulkan/test_vulkan_api_consistency_for_3dimages.cpp @@ -208,11 +208,8 @@ struct ConsistencyExternalImage3DTest : public VulkanTestBase } // anonymous namespace -int test_consistency_external_for_3dimage(cl_device_id deviceID, - cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_consistency_external_for_3dimage) { - return MakeAndRunTest( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest(device, context, + queue, num_elements); } diff --git a/test_conformance/vulkan/test_vulkan_interop_buffer.cpp b/test_conformance/vulkan/test_vulkan_interop_buffer.cpp index 94078031..a05dc6ed 100644 --- a/test_conformance/vulkan/test_vulkan_interop_buffer.cpp +++ b/test_conformance/vulkan/test_vulkan_interop_buffer.cpp @@ -1797,93 +1797,77 @@ template struct BufferCommonBufferTest : public BufferTestBase } // anonymous namespace -int test_buffer_single_queue(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, int num_elements) +REGISTER_TEST(test_buffer_single_queue) { params_reset(); log_info("RUNNING TEST WITH ONE QUEUE...... \n\n"); - return MakeAndRunTest>( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest>(device, context, queue, + num_elements); } -int test_buffer_multiple_queue(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, int num_elements) +REGISTER_TEST(test_buffer_multiple_queue) { params_reset(); numCQ = 2; log_info("RUNNING TEST WITH TWO QUEUE...... \n\n"); - return MakeAndRunTest>( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest>(device, context, queue, + num_elements); } -int test_buffer_multiImport_sameCtx(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_buffer_multiImport_sameCtx) { params_reset(); multiImport = true; log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT " "IN SAME CONTEXT...... \n\n"); - return MakeAndRunTest>( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest>(device, context, queue, + num_elements); } -int test_buffer_multiImport_diffCtx(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_buffer_multiImport_diffCtx) { params_reset(); multiImport = true; multiCtx = true; log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT " "IN DIFFERENT CONTEXT...... \n\n"); - return MakeAndRunTest>( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest>(device, context, queue, + num_elements); } -int test_buffer_single_queue_fence(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_buffer_single_queue_fence) { params_reset(); log_info("RUNNING TEST WITH ONE QUEUE...... \n\n"); - return MakeAndRunTest>( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest>(device, context, queue, + num_elements); } -int test_buffer_multiple_queue_fence(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_buffer_multiple_queue_fence) { params_reset(); numCQ = 2; log_info("RUNNING TEST WITH TWO QUEUE...... \n\n"); - return MakeAndRunTest>( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest>(device, context, queue, + num_elements); } -int test_buffer_multiImport_sameCtx_fence(cl_device_id deviceID, - cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_buffer_multiImport_sameCtx_fence) { params_reset(); multiImport = true; log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT " "IN SAME CONTEXT...... \n\n"); - return MakeAndRunTest>( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest>(device, context, queue, + num_elements); } -int test_buffer_multiImport_diffCtx_fence(cl_device_id deviceID, - cl_context context, - cl_command_queue defaultQueue, - int num_elements) +REGISTER_TEST(test_buffer_multiImport_diffCtx_fence) { params_reset(); multiImport = true; multiCtx = true; log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT " "IN DIFFERENT CONTEXT...... \n\n"); - return MakeAndRunTest>( - deviceID, context, defaultQueue, num_elements); + return MakeAndRunTest>(device, context, queue, + num_elements); } diff --git a/test_conformance/vulkan/test_vulkan_interop_image.cpp b/test_conformance/vulkan/test_vulkan_interop_image.cpp index d529f482..c2f2727d 100644 --- a/test_conformance/vulkan/test_vulkan_interop_image.cpp +++ b/test_conformance/vulkan/test_vulkan_interop_image.cpp @@ -1521,22 +1521,20 @@ struct ImageCommonTest : public VulkanTestBase } // anonymous namespace -int test_image_single_queue(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, int num_elements) +REGISTER_TEST(test_image_single_queue) { params_reset(); log_info("RUNNING TEST WITH ONE QUEUE...... \n\n"); - return MakeAndRunTest(deviceID, context, defaultQueue, + return MakeAndRunTest(device, context, queue, num_elements); } -int test_image_multiple_queue(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, int num_elements) +REGISTER_TEST(test_image_multiple_queue) { params_reset(); numCQ = 2; log_info("RUNNING TEST WITH TWO QUEUE...... \n\n"); - return MakeAndRunTest(deviceID, context, defaultQueue, + return MakeAndRunTest(device, context, queue, num_elements); } diff --git a/test_conformance/vulkan/test_vulkan_platform_device_info.cpp b/test_conformance/vulkan/test_vulkan_platform_device_info.cpp index eaf963c9..c8d7410c 100644 --- a/test_conformance/vulkan/test_vulkan_platform_device_info.cpp +++ b/test_conformance/vulkan/test_vulkan_platform_device_info.cpp @@ -233,16 +233,13 @@ struct DeviceInfoTest : public VulkanTestBase } // anonymous namespace -int test_platform_info(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, int num_elements) +REGISTER_TEST(test_platform_info) { - return MakeAndRunTest(deviceID, context, defaultQueue, + return MakeAndRunTest(device, context, queue, num_elements); } -int test_device_info(cl_device_id deviceID, cl_context context, - cl_command_queue defaultQueue, int num_elements) +REGISTER_TEST(test_device_info) { - return MakeAndRunTest(deviceID, context, defaultQueue, - num_elements); + return MakeAndRunTest(device, context, queue, num_elements); }