[Piglit] [PATCH v2 1/1] cl: Split setKernelArg into subtests
Serge Martin
edb+piglit at sigluy.net
Mon Mar 14 10:39:04 UTC 2016
On Wednesday 09 March 2016 10:59:44 Jan Vesely wrote:
> v2: coalesce input checks into one subtest
>
> Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
Reviewed-by: Serge Martin <edb+piglit at sigluy.net>
> ---
> tests/cl/api/set-kernel-arg.c | 55
> ++++++++++++++++++++++++------------------- 1 file changed, 31
> insertions(+), 24 deletions(-)
>
> diff --git a/tests/cl/api/set-kernel-arg.c b/tests/cl/api/set-kernel-arg.c
> index 471fea1..fb77059 100644
> --- a/tests/cl/api/set-kernel-arg.c
> +++ b/tests/cl/api/set-kernel-arg.c
> @@ -75,7 +75,7 @@ get_device_image_support(cl_device_id device)
> return true;
> }
>
> -static bool
> +static void
> test (cl_kernel kernel,
> cl_uint arg_index,
> size_t arg_size,
> @@ -85,16 +85,17 @@ test (cl_kernel kernel,
> const char* test_str)
> {
> cl_int errNo;
> -
> + enum piglit_result res = PIGLIT_PASS;
> +
> errNo = clSetKernelArg(kernel, arg_index, arg_size, arg_value);
> if(!piglit_cl_check_error(errNo, expected_error)) {
> fprintf(stderr, "Failed (error code: %s): %s.\n",
> piglit_cl_get_error_name(errNo), test_str);
> + res = PIGLIT_FAIL;
> piglit_merge_result(result, PIGLIT_FAIL);
> - return false;
> }
> -
> - return true;
> + if (expected_error == CL_SUCCESS)
> + piglit_report_subtest_result(res, "%s", test_str);
> }
>
> enum piglit_result
> @@ -110,10 +111,11 @@ piglit_cl_test(const int argc,
> } struct_arg_t;
>
> enum piglit_result result = PIGLIT_PASS;
> + const char * test_str = NULL;
>
> cl_int errNo;
> cl_kernel kernel;
> -
> +
> cl_mem buffer;
> cl_float float_num = 1.1;
> cl_int int_num = 1;
> @@ -171,10 +173,12 @@ piglit_cl_test(const int argc,
> CL_SUCCESS, &result,
> "Set kernel argument for array");
>
> + test_str = "Set kernel argument for sampler";
> if (image_support) {
> test(kernel, 3, sizeof(cl_sampler), &sampler,
> - CL_SUCCESS, &result,
> - "Set kernel argument for sampler");
> + CL_SUCCESS, &result, test_str);
> + } else {
> + piglit_report_subtest_result(PIGLIT_SKIP, "%s", test_str);
> }
>
> test(kernel, 4, sizeof(cl_int3), &vec3,
> @@ -196,19 +200,19 @@ piglit_cl_test(const int argc,
> "Set kernel argument for buffer which is NULL");
>
> /*** Errors ***/
> -
> + enum piglit_result input_check_result;
> /*
> * CL_INVALID_KERNEL if kernel is not a valid kernel object.
> */
> test(NULL, 1, sizeof(cl_float), &float_num,
> - CL_INVALID_KERNEL, &result,
> + CL_INVALID_KERNEL, &input_check_result,
> "Trigger CL_INVALID_KERNEL if kernel is not a valid kernel object");
>
> /*
> * CL_INVALID_ARG_INDEX if arg_index is not a valid argument index.
> */
> test(kernel, 11, sizeof(cl_float), &float_num,
> - CL_INVALID_ARG_INDEX, &result,
> + CL_INVALID_ARG_INDEX, &input_check_result,
> "Trigger CL_INVALID_ARG_INDEX if arg_index is not a valid argument
> index");
>
> /*
> @@ -222,38 +226,39 @@ piglit_cl_test(const int argc,
> * Version : 1.2
> */
> test(kernel, 1, sizeof(cl_float), NULL,
> - CL_INVALID_ARG_VALUE, &result,
> + CL_INVALID_ARG_VALUE, &input_check_result,
> "Trigger CL_INVALID_ARG_VALUE if arg_value specified is NULL for an
> argument that is not declared with the __local qualifier"); test(kernel, 2,
> sizeof(cl_int), &int_num,
> - CL_INVALID_ARG_VALUE, &result,
> + CL_INVALID_ARG_VALUE, &input_check_result,
> "Trigger CL_INVALID_ARG_VALUE if arg_value specified is not NULL for
> an argument that is declared with the __local qualifier");
>
> /*
> * CL_INVALID_MEM_OBJECT for an argument declared to be a memory object
> when * the specified arg_value is not a valid memory object.
> */
> + test_str = "Trigger CL_INVALID_MEM_OBJECT for an argument declared to be a
> memory object when the specified arg_value is not a valid memory object.";
> errNo = clSetKernelArg(kernel, 0, sizeof(cl_mem), &invalid_buffer); if(
> errNo != CL_INVALID_MEM_OBJECT
> && errNo != CL_INVALID_ARG_VALUE) { // two possible values
> piglit_cl_check_error(errNo, CL_INVALID_MEM_OBJECT);
> fprintf(stderr,
> - "Failed (error code: %s): Trigger CL_INVALID_MEM_OBJECT for
an
> argument declared to be a memory object when the specified arg_value is not
> a valid memory object.\n", - piglit_cl_get_error_name(errNo));
> - piglit_merge_result(&result, PIGLIT_FAIL);
> + "Failed (error code: %s): %s\n",
> + piglit_cl_get_error_name(errNo), test_str);
> + piglit_merge_result(&input_check_result, PIGLIT_FAIL);
> }
>
> /*
> * CL_INVALID_SAMPLER for an argument declared to be of type sampler_t
> when * the specified arg_value is not a valid sampler object.
> */
> + test_str = "Trigger CL_INVALID_SAMPLER for an argument declared to be a
> memory object when the specified arg_value is not a valid memory object.";
> errNo = clSetKernelArg(kernel, 3, sizeof(cl_sampler), NULL);
> if( errNo != CL_INVALID_SAMPLER
> && errNo != CL_INVALID_ARG_VALUE) { // two possible values
> piglit_cl_check_error(errNo, CL_INVALID_SAMPLER);
> - fprintf(stderr,
> - "Failed (error code: %s): Trigger CL_INVALID_SAMPLER for an
> argument declared to be a memory object when the specified arg_value is not
> a valid memory object.\n", - piglit_cl_get_error_name(errNo));
> - piglit_merge_result(&result, PIGLIT_FAIL);
> + fprintf(stderr, "Failed (error code: %s): %s.\n",
> + piglit_cl_get_error_name(errNo), test_str);
> + piglit_merge_result(&input_check_result, PIGLIT_FAIL);
> }
>
> /*
> @@ -264,16 +269,16 @@ piglit_cl_test(const int argc,
> * a sampler and arg_size != sizeof(cl_sampler).
> */
> test(kernel, 1, sizeof(cl_float)+1, &float_num,
> - CL_INVALID_ARG_SIZE, &result,
> + CL_INVALID_ARG_SIZE, &input_check_result,
> "Trigger CL_INVALID_ARG_SIZE if arg_size does not match the size of
> the data type for an argument that is not a memory object"); test(kernel,
> 0, sizeof(cl_mem)+1, &buffer,
> - CL_INVALID_ARG_SIZE, &result,
> + CL_INVALID_ARG_SIZE, &input_check_result,
> "Trigger CL_INVALID_ARG_SIZE if the argument is a memory object and
> arg_size != sizeof(cl_mem)"); test(kernel, 2, 0, NULL,
> - CL_INVALID_ARG_SIZE, &result,
> + CL_INVALID_ARG_SIZE, &input_check_result,
> "Trigger CL_INVALID_ARG_SIZE if arg_size is zero and the argument is
> declared with the __local qualifier"); test(kernel, 3,
> sizeof(cl_sampler)+1, &sampler,
> - CL_INVALID_ARG_SIZE, &result,
> + CL_INVALID_ARG_SIZE, &input_check_result,
> "Trigger CL_INVALID_ARG_SIZE if the argument is a sampler and
> arg_size != sizeof(cl_sampler)");
>
> /*
> @@ -287,6 +292,8 @@ piglit_cl_test(const int argc,
> *
> * TODO
> */
> + piglit_report_subtest_result(input_check_result, "Input checks");
> + piglit_merge_result(&result, input_check_result);
>
> clReleaseMemObject(buffer);
> clReleaseSampler(sampler);
More information about the Piglit
mailing list