[RFC] Move logic for test registration to the test harness (#2151)

And use in device_timer suite.

Signed-off-by: Kévin Petit <kpet@free.fr>
This commit is contained in:
Kévin Petit
2024-11-26 17:55:09 +00:00
committed by GitHub
parent df5e87bf97
commit 0a1456d8f9
36 changed files with 307 additions and 352 deletions

View File

@@ -1447,7 +1447,7 @@ public:
};
// Driver for testing a single built in function
template <typename Ty, typename Fns, size_t TSIZE = 0> struct test
template <typename Ty, typename Fns, size_t TSIZE = 0> struct subgroup_test
{
static test_status run(cl_device_id device, cl_context context,
cl_command_queue queue, int num_elements,
@@ -1688,9 +1688,9 @@ struct RunTestForType
std::regex_replace(test_params_.get_kernel_source(function_name),
std::regex("\\%s"), function_name);
std::string kernel_name = "test_" + function_name;
error =
test<T, U>::run(device_, context_, queue_, num_elements_,
kernel_name.c_str(), source.c_str(), test_params_);
error = subgroup_test<T, U>::run(device_, context_, queue_,
num_elements_, kernel_name.c_str(),
source.c_str(), test_params_);
// If we return TEST_SKIPPED_ITSELF here, then an entire suite may be
// reported as having been skipped even if some tests within it

View File

@@ -164,9 +164,10 @@ int test_barrier_functions(cl_device_id device, cl_context context,
constexpr size_t local_work_size = 200;
WorkGroupParams test_params(global_work_size, local_work_size);
test_params.use_core_subgroups = useCoreSubgroups;
error = test<cl_int, BAR<0>>::run(device, context, queue, num_elements,
"test_lbar", lbar_source, test_params);
error |= test<cl_int, BAR<1>, global_work_size>::run(
error = subgroup_test<cl_int, BAR<0>>::run(device, context, queue,
num_elements, "test_lbar",
lbar_source, test_params);
error |= subgroup_test<cl_int, BAR<1>, global_work_size>::run(
device, context, queue, num_elements, "test_gbar", gbar_source,
test_params);

View File

@@ -297,8 +297,9 @@ int test_ifp(cl_device_id device, cl_context context, cl_command_queue queue,
WorkGroupParams test_params(global_work_size, local_work_size);
test_params.use_core_subgroups = useCoreSubgroups;
test_params.dynsc = NUM_LOC + 1;
error = test<cl_int, IFP>::run(device, context, queue, num_elements,
"test_ifp", ifp_source, test_params);
error =
subgroup_test<cl_int, IFP>::run(device, context, queue, num_elements,
"test_ifp", ifp_source, test_params);
return error;
}