MCPcopy Create free account
hub / github.com/KhronosGroup/OpenCL-CTS / test_double_arg_clone

Function test_double_arg_clone

test_conformance/api/test_clone_kernel.cpp:206–245  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

204 test_assert_error(((cl_uint*)pbufRes)[10] == color[3],
205 "clCloneKernel test failed.");
206
207 return TEST_PASS;
208}
209
210int test_double_arg_clone(cl_device_id device, cl_context context,
211 cl_command_queue queue, int num_elements,
212 void* pbufRes, clMemWrapper& bufOut)
213{
214 int error = 0;
215 clProgramWrapper program;
216 clKernelWrapper kernel;
217 clKernelWrapper kernel_cloned;
218 size_t ndrange1 = 1;
219
220 if (create_single_kernel_helper(context, &program, &kernel, 1,
221 clone_kernel_test_double,
222 "clone_kernel_test1")
223 != 0)
224 {
225 return -1;
226 }
227
228 cl_double d = 1.23;
229 error = clSetKernelArg(kernel, 0, sizeof(double), &d);
230 error += clSetKernelArg(kernel, 1, sizeof(cl_mem), &bufOut);
231 test_error(error, "clSetKernelArg failed.");
232
233 kernel_cloned = clCloneKernel(kernel, &error);
234 test_error(error, "clCloneKernel failed.");
235
236 error = clEnqueueNDRangeKernel(queue, kernel_cloned, 1, NULL, &ndrange1,
237 NULL, 0, NULL, NULL);
238 test_error(error, "clEnqueueNDRangeKernel failed.");
239
240 // read result back
241 error = clEnqueueReadBuffer(queue, bufOut, CL_TRUE, 0, BUF_SIZE, pbufRes, 0,
242 NULL, NULL);
243 test_error(error, "clEnqueueReadBuffer failed.");
244
245 test_assert_error(abs(((cl_double*)pbufRes)[2] - d) <= 0.0000001,
246 "clCloneKernel test failed.");
247
248 return TEST_PASS;

Callers 1

Calls 1

Tested by

no test coverage detected