Migrate test_vulkan to the new registration framework (#2278)

Signed-off-by: Kévin Petit <kpet@free.fr>
This commit is contained in:
Kévin Petit
2025-02-18 18:54:03 +00:00
committed by GitHub
parent 24597e0145
commit 9216c81855
8 changed files with 50 additions and 189 deletions

View File

@@ -30,35 +30,8 @@
#include <OpenCL/cl.h> #include <OpenCL/cl.h>
#endif #endif
#include "procs.h"
#include "harness/testHarness.h" #include "harness/testHarness.h"
#if !defined(_WIN32)
#include <unistd.h>
#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; unsigned int numCQ;
bool multiImport; bool multiImport;
bool multiCtx; bool multiCtx;
@@ -75,9 +48,9 @@ static void printUsage(const char *execName)
log_info("Usage: %s [test_names] [options]\n", execName); log_info("Usage: %s [test_names] [options]\n", execName);
log_info("Test names:\n"); 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("\n");
log_info("Options:\n"); log_info("Options:\n");
@@ -178,5 +151,6 @@ int main(int argc, const char *argv[])
size_t argCount = parseParams(argc, argv, argList); size_t argCount = parseParams(argc, argv, argList);
if (argCount == 0) return 0; 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);
} }

View File

@@ -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_);

View File

@@ -503,27 +503,20 @@ struct ConsistencyExternalSemaphoreTest : public VulkanTestBase
} // anonymous namespace } // anonymous namespace
int test_consistency_external_buffer(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_consistency_external_buffer)
cl_command_queue defaultQueue,
int num_elements)
{ {
return MakeAndRunTest<ConsistencyExternalBufferTest>( return MakeAndRunTest<ConsistencyExternalBufferTest>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }
int test_consistency_external_image(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_consistency_external_image)
cl_command_queue defaultQueue,
int num_elements)
{ {
return MakeAndRunTest<ConsistencyExternalImageTest>( return MakeAndRunTest<ConsistencyExternalImageTest>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }
int test_consistency_external_semaphore(cl_device_id deviceID, REGISTER_TEST(test_consistency_external_semaphore)
cl_context context,
cl_command_queue defaultQueue,
int num_elements)
{ {
return MakeAndRunTest<ConsistencyExternalSemaphoreTest>( return MakeAndRunTest<ConsistencyExternalSemaphoreTest>(
deviceID, context, defaultQueue, num_elements); device, context, queue, num_elements);
} }

View File

@@ -204,11 +204,8 @@ struct ConsistencyExternalImage1DTest : public VulkanTestBase
}; };
} }
int test_consistency_external_for_1dimage(cl_device_id deviceID, REGISTER_TEST(test_consistency_external_for_1dimage)
cl_context context,
cl_command_queue defaultQueue,
int num_elements)
{ {
return MakeAndRunTest<ConsistencyExternalImage1DTest>( return MakeAndRunTest<ConsistencyExternalImage1DTest>(device, context,
deviceID, context, defaultQueue, num_elements); queue, num_elements);
} }

View File

@@ -208,11 +208,8 @@ struct ConsistencyExternalImage3DTest : public VulkanTestBase
} // anonymous namespace } // anonymous namespace
int test_consistency_external_for_3dimage(cl_device_id deviceID, REGISTER_TEST(test_consistency_external_for_3dimage)
cl_context context,
cl_command_queue defaultQueue,
int num_elements)
{ {
return MakeAndRunTest<ConsistencyExternalImage3DTest>( return MakeAndRunTest<ConsistencyExternalImage3DTest>(device, context,
deviceID, context, defaultQueue, num_elements); queue, num_elements);
} }

View File

@@ -1797,93 +1797,77 @@ template <bool use_fence> struct BufferCommonBufferTest : public BufferTestBase
} // anonymous namespace } // anonymous namespace
int test_buffer_single_queue(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_buffer_single_queue)
cl_command_queue defaultQueue, int num_elements)
{ {
params_reset(); params_reset();
log_info("RUNNING TEST WITH ONE QUEUE...... \n\n"); log_info("RUNNING TEST WITH ONE QUEUE...... \n\n");
return MakeAndRunTest<BufferCommonBufferTest<false>>( return MakeAndRunTest<BufferCommonBufferTest<false>>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }
int test_buffer_multiple_queue(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_buffer_multiple_queue)
cl_command_queue defaultQueue, int num_elements)
{ {
params_reset(); params_reset();
numCQ = 2; numCQ = 2;
log_info("RUNNING TEST WITH TWO QUEUE...... \n\n"); log_info("RUNNING TEST WITH TWO QUEUE...... \n\n");
return MakeAndRunTest<BufferCommonBufferTest<false>>( return MakeAndRunTest<BufferCommonBufferTest<false>>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }
int test_buffer_multiImport_sameCtx(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_buffer_multiImport_sameCtx)
cl_command_queue defaultQueue,
int num_elements)
{ {
params_reset(); params_reset();
multiImport = true; multiImport = true;
log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT " log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT "
"IN SAME CONTEXT...... \n\n"); "IN SAME CONTEXT...... \n\n");
return MakeAndRunTest<BufferCommonBufferTest<false>>( return MakeAndRunTest<BufferCommonBufferTest<false>>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }
int test_buffer_multiImport_diffCtx(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_buffer_multiImport_diffCtx)
cl_command_queue defaultQueue,
int num_elements)
{ {
params_reset(); params_reset();
multiImport = true; multiImport = true;
multiCtx = true; multiCtx = true;
log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT " log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT "
"IN DIFFERENT CONTEXT...... \n\n"); "IN DIFFERENT CONTEXT...... \n\n");
return MakeAndRunTest<BufferCommonBufferTest<false>>( return MakeAndRunTest<BufferCommonBufferTest<false>>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }
int test_buffer_single_queue_fence(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_buffer_single_queue_fence)
cl_command_queue defaultQueue,
int num_elements)
{ {
params_reset(); params_reset();
log_info("RUNNING TEST WITH ONE QUEUE...... \n\n"); log_info("RUNNING TEST WITH ONE QUEUE...... \n\n");
return MakeAndRunTest<BufferCommonBufferTest<true>>( return MakeAndRunTest<BufferCommonBufferTest<true>>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }
int test_buffer_multiple_queue_fence(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_buffer_multiple_queue_fence)
cl_command_queue defaultQueue,
int num_elements)
{ {
params_reset(); params_reset();
numCQ = 2; numCQ = 2;
log_info("RUNNING TEST WITH TWO QUEUE...... \n\n"); log_info("RUNNING TEST WITH TWO QUEUE...... \n\n");
return MakeAndRunTest<BufferCommonBufferTest<true>>( return MakeAndRunTest<BufferCommonBufferTest<true>>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }
int test_buffer_multiImport_sameCtx_fence(cl_device_id deviceID, REGISTER_TEST(test_buffer_multiImport_sameCtx_fence)
cl_context context,
cl_command_queue defaultQueue,
int num_elements)
{ {
params_reset(); params_reset();
multiImport = true; multiImport = true;
log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT " log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT "
"IN SAME CONTEXT...... \n\n"); "IN SAME CONTEXT...... \n\n");
return MakeAndRunTest<BufferCommonBufferTest<true>>( return MakeAndRunTest<BufferCommonBufferTest<true>>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }
int test_buffer_multiImport_diffCtx_fence(cl_device_id deviceID, REGISTER_TEST(test_buffer_multiImport_diffCtx_fence)
cl_context context,
cl_command_queue defaultQueue,
int num_elements)
{ {
params_reset(); params_reset();
multiImport = true; multiImport = true;
multiCtx = true; multiCtx = true;
log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT " log_info("RUNNING TEST WITH MULTIPLE DEVICE MEMORY IMPORT "
"IN DIFFERENT CONTEXT...... \n\n"); "IN DIFFERENT CONTEXT...... \n\n");
return MakeAndRunTest<BufferCommonBufferTest<true>>( return MakeAndRunTest<BufferCommonBufferTest<true>>(device, context, queue,
deviceID, context, defaultQueue, num_elements); num_elements);
} }

View File

@@ -1521,22 +1521,20 @@ struct ImageCommonTest : public VulkanTestBase
} // anonymous namespace } // anonymous namespace
int test_image_single_queue(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_image_single_queue)
cl_command_queue defaultQueue, int num_elements)
{ {
params_reset(); params_reset();
log_info("RUNNING TEST WITH ONE QUEUE...... \n\n"); log_info("RUNNING TEST WITH ONE QUEUE...... \n\n");
return MakeAndRunTest<ImageCommonTest>(deviceID, context, defaultQueue, return MakeAndRunTest<ImageCommonTest>(device, context, queue,
num_elements); num_elements);
} }
int test_image_multiple_queue(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_image_multiple_queue)
cl_command_queue defaultQueue, int num_elements)
{ {
params_reset(); params_reset();
numCQ = 2; numCQ = 2;
log_info("RUNNING TEST WITH TWO QUEUE...... \n\n"); log_info("RUNNING TEST WITH TWO QUEUE...... \n\n");
return MakeAndRunTest<ImageCommonTest>(deviceID, context, defaultQueue, return MakeAndRunTest<ImageCommonTest>(device, context, queue,
num_elements); num_elements);
} }

View File

@@ -233,16 +233,13 @@ struct DeviceInfoTest : public VulkanTestBase
} // anonymous namespace } // anonymous namespace
int test_platform_info(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_platform_info)
cl_command_queue defaultQueue, int num_elements)
{ {
return MakeAndRunTest<PlatformInfoTest>(deviceID, context, defaultQueue, return MakeAndRunTest<PlatformInfoTest>(device, context, queue,
num_elements); num_elements);
} }
int test_device_info(cl_device_id deviceID, cl_context context, REGISTER_TEST(test_device_info)
cl_command_queue defaultQueue, int num_elements)
{ {
return MakeAndRunTest<DeviceInfoTest>(deviceID, context, defaultQueue, return MakeAndRunTest<DeviceInfoTest>(device, context, queue, num_elements);
num_elements);
} }