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>
#endif
#include "procs.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;
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);
}

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
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<ConsistencyExternalBufferTest>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<ConsistencyExternalBufferTest>(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<ConsistencyExternalImageTest>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<ConsistencyExternalImageTest>(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<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,
cl_context context,
cl_command_queue defaultQueue,
int num_elements)
REGISTER_TEST(test_consistency_external_for_1dimage)
{
return MakeAndRunTest<ConsistencyExternalImage1DTest>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<ConsistencyExternalImage1DTest>(device, context,
queue, num_elements);
}

View File

@@ -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<ConsistencyExternalImage3DTest>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<ConsistencyExternalImage3DTest>(device, context,
queue, num_elements);
}

View File

@@ -1797,93 +1797,77 @@ template <bool use_fence> 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<BufferCommonBufferTest<false>>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<BufferCommonBufferTest<false>>(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<BufferCommonBufferTest<false>>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<BufferCommonBufferTest<false>>(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<BufferCommonBufferTest<false>>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<BufferCommonBufferTest<false>>(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<BufferCommonBufferTest<false>>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<BufferCommonBufferTest<false>>(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<BufferCommonBufferTest<true>>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<BufferCommonBufferTest<true>>(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<BufferCommonBufferTest<true>>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<BufferCommonBufferTest<true>>(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<BufferCommonBufferTest<true>>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<BufferCommonBufferTest<true>>(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<BufferCommonBufferTest<true>>(
deviceID, context, defaultQueue, num_elements);
return MakeAndRunTest<BufferCommonBufferTest<true>>(device, context, queue,
num_elements);
}

View File

@@ -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<ImageCommonTest>(deviceID, context, defaultQueue,
return MakeAndRunTest<ImageCommonTest>(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<ImageCommonTest>(deviceID, context, defaultQueue,
return MakeAndRunTest<ImageCommonTest>(device, context, queue,
num_elements);
}

View File

@@ -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<PlatformInfoTest>(deviceID, context, defaultQueue,
return MakeAndRunTest<PlatformInfoTest>(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<DeviceInfoTest>(deviceID, context, defaultQueue,
num_elements);
return MakeAndRunTest<DeviceInfoTest>(device, context, queue, num_elements);
}