mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Migrate test_vulkan to the new registration framework (#2278)
Signed-off-by: Kévin Petit <kpet@free.fr>
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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_);
|
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user