mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Added test to verify negative result of clSetKernelArg with CL_INVALID_ARG_SIZE and sampler argument (#2452)
Related to #2282, according to work plan from [here](https://github.com/KhronosGroup/OpenCL-CTS/issues/2282#issuecomment-3069182773)
This commit is contained in:
@@ -89,6 +89,16 @@ const char *sample_two_kernel_program[] = {
|
|||||||
"\n"
|
"\n"
|
||||||
"}\n" };
|
"}\n" };
|
||||||
|
|
||||||
|
const char *sample_sampler_size_test_kernel = R"(
|
||||||
|
__kernel void sampler_size_test(sampler_t sampler, __read_only image2d_t src, __global float4 *dst)
|
||||||
|
{
|
||||||
|
int tid = get_global_id(0);
|
||||||
|
int2 coord = (int2)(get_global_id(0), get_global_id(1));
|
||||||
|
float4 data = read_imagef(src, sampler, coord);
|
||||||
|
dst[tid] = data;
|
||||||
|
}
|
||||||
|
)";
|
||||||
|
|
||||||
const char *sample_mem_obj_size_test_kernel = R"(
|
const char *sample_mem_obj_size_test_kernel = R"(
|
||||||
__kernel void mem_obj_size_test(__global int *src, __global int *dst)
|
__kernel void mem_obj_size_test(__global int *src, __global int *dst)
|
||||||
{
|
{
|
||||||
@@ -744,6 +754,48 @@ REGISTER_TEST(negative_set_immutable_memory_to_writeable_kernel_arg)
|
|||||||
return TEST_PASS;
|
return TEST_PASS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
REGISTER_TEST(negative_invalid_arg_sampler)
|
||||||
|
{
|
||||||
|
PASSIVE_REQUIRE_IMAGE_SUPPORT(device)
|
||||||
|
|
||||||
|
cl_int error = CL_SUCCESS;
|
||||||
|
clProgramWrapper program;
|
||||||
|
clKernelWrapper sampler_arg_kernel;
|
||||||
|
|
||||||
|
// Setup the test
|
||||||
|
error =
|
||||||
|
create_single_kernel_helper(context, &program, nullptr, 1,
|
||||||
|
&sample_sampler_size_test_kernel, nullptr);
|
||||||
|
test_error(error, "Unable to build test program");
|
||||||
|
|
||||||
|
sampler_arg_kernel = clCreateKernel(program, "sampler_size_test", &error);
|
||||||
|
test_error(error,
|
||||||
|
"Unable to get sampler_size_test kernel for built program");
|
||||||
|
|
||||||
|
clSamplerWrapper sampler = clCreateSampler(
|
||||||
|
context, CL_FALSE, CL_ADDRESS_NONE, CL_FILTER_NEAREST, &error);
|
||||||
|
test_error(error, "Unable to create sampler");
|
||||||
|
|
||||||
|
// Run the test - CL_INVALID_ARG_SIZE
|
||||||
|
error =
|
||||||
|
clSetKernelArg(sampler_arg_kernel, 0, sizeof(cl_sampler) * 2, &sampler);
|
||||||
|
test_failure_error_ret(
|
||||||
|
error, CL_INVALID_ARG_SIZE,
|
||||||
|
"clSetKernelArg is supposed to fail with CL_INVALID_ARG_SIZE when "
|
||||||
|
"argument is a sampler object and arg_size > sizeof(cl_sampler)",
|
||||||
|
TEST_FAIL);
|
||||||
|
|
||||||
|
error =
|
||||||
|
clSetKernelArg(sampler_arg_kernel, 0, sizeof(cl_sampler) / 2, &sampler);
|
||||||
|
test_failure_error_ret(
|
||||||
|
error, CL_INVALID_ARG_SIZE,
|
||||||
|
"clSetKernelArg is supposed to fail with CL_INVALID_ARG_SIZE when "
|
||||||
|
"argument is a sampler object and arg_size < sizeof(cl_sampler)",
|
||||||
|
TEST_FAIL);
|
||||||
|
|
||||||
|
return TEST_PASS;
|
||||||
|
}
|
||||||
|
|
||||||
REGISTER_TEST(negative_invalid_arg_size)
|
REGISTER_TEST(negative_invalid_arg_size)
|
||||||
{
|
{
|
||||||
std::vector<ExplicitType> exp_types = { kChar, kUChar, kShort, kUShort,
|
std::vector<ExplicitType> exp_types = { kChar, kUChar, kShort, kUShort,
|
||||||
|
|||||||
Reference in New Issue
Block a user