1 #include <string.h>
2 #include <stdlib.h>
3
4 #define CL_USE_DEPRECATED_OPENCL_1_0_APIS
5 #define CL_USE_DEPRECATED_OPENCL_1_1_APIS
6 #define CL_USE_DEPRECATED_OPENCL_1_2_APIS
7
8 #include <CL/cl.h>
9 #include "param_struct.h"
10 #include <platform/icd_test_log.h>
11
12 extern void CL_CALLBACK createcontext_callback(const char* a, const void* b, size_t c, void* d);
13
14 cl_platform_id platform;
15 cl_uint num_platforms;
16 cl_context context;
17 cl_command_queue command_queue;
18 cl_mem buffer;
19 cl_mem subBuffer;
20 cl_mem image;
21 cl_sampler sampler;
22 cl_program program;
23 cl_kernel kernel;
24 cl_event event;
25 cl_device_id devices;
26 cl_context_properties context_properties[3] = {
27 (cl_context_properties)CL_CONTEXT_PLATFORM,
28 0,
29 0,
30 };
31
32 const struct clGetDeviceIDs_st clGetDeviceIDsData[NUM_ITEMS_clGetDeviceIDs] =
33 {
34 {NULL, 0, 1, NULL, NULL}
35 };
36
37 const struct clCreateSampler_st clCreateSamplerData[NUM_ITEMS_clCreateSampler] =
38 {
39 {NULL, 0x0, 0, 0, NULL},
40 };
41
42 const struct clCreateCommandQueue_st clCreateCommandQueueData[NUM_ITEMS_clCreateCommandQueue] =
43 {
44 {NULL, NULL, 0, NULL}
45 };
46
47 const struct clCreateContext_st clCreateContextData[NUM_ITEMS_clCreateContext] =
48 {
49 {NULL, 1, NULL, NULL, NULL, NULL}
50 };
51
52 const struct clCreateContextFromType_st clCreateContextFromTypeData[NUM_ITEMS_clCreateContextFromType] =
53 {
54 {NULL, 0, createcontext_callback, NULL, NULL}
55 };
56
57 const struct clCreateBuffer_st clCreateBufferData[NUM_ITEMS_clCreateBuffer] =
58 {
59 {NULL, 0, 0, NULL, NULL}
60 };
61
62 const struct clCreateBufferWithProperties_st clCreateBufferWithPropertiesData[NUM_ITEMS_clCreateBufferWithProperties] =
63 {
64 {NULL, NULL, 0, 0, NULL, NULL}
65 };
66
67 const struct clCreateSubBuffer_st clCreateSubBufferData[NUM_ITEMS_clCreateSubBuffer] =
68 {
69 {NULL, 0, 0, NULL, NULL}
70 };
71
72 const struct clCreateImage_st clCreateImageData[NUM_ITEMS_clCreateImage] =
73 {
74 { NULL, 0x0, NULL, NULL, NULL, NULL}
75 };
76
77 const struct clCreateImageWithProperties_st clCreateImageWithPropertiesData[NUM_ITEMS_clCreateImageWithProperties] =
78 {
79 { NULL, NULL, 0x0, NULL, NULL, NULL, NULL}
80 };
81
82 const struct clCreateImage2D_st clCreateImage2DData[NUM_ITEMS_clCreateImage2D] =
83 {
84 { NULL, 0x0, NULL, 0, 0, 0, NULL, NULL}
85 };
86
87 const struct clCreateImage3D_st clCreateImage3DData[NUM_ITEMS_clCreateImage3D] =
88 {
89 { NULL, 0x0, NULL, 0, 0, 0, 0, 0, NULL, NULL }
90 };
91
92
93 struct clReleaseMemObject_st clReleaseMemObjectData[NUM_ITEMS_clReleaseMemObject] =
94 {
95 {NULL}
96 };
97
98 struct clReleaseMemObject_st clReleaseMemObjectDataSubBuffer[NUM_ITEMS_clReleaseMemObject] =
99 {
100 {NULL}
101 };
102
103 struct clReleaseMemObject_st clReleaseMemObjectDataImage[NUM_ITEMS_clReleaseMemObject] =
104 {
105 {NULL}
106 };
107
108 const struct clCreateProgramWithSource_st clCreateProgramWithSourceData[NUM_ITEMS_clCreateProgramWithSource] =
109 {
110 {NULL, 0, NULL, NULL, NULL}
111 };
112
113 const struct clCreateProgramWithBinary_st clCreateProgramWithBinaryData[NUM_ITEMS_clCreateProgramWithBinary] =
114 {
115 {NULL, 0, NULL, NULL, NULL, NULL, NULL}
116 };
117
118 const struct clCreateProgramWithBuiltInKernels_st clCreateProgramWithBuiltInKernelsData[NUM_ITEMS_clCreateProgramWithBuiltInKernels] =
119 {
120 {NULL, 0, NULL, NULL, NULL}
121 };
122
123 const struct clCreateKernel_st clCreateKernelData[NUM_ITEMS_clCreateKernel] =
124 {
125 {NULL, NULL, NULL}
126 };
127
128 const struct clCreateKernelsInProgram_st clCreateKernelsInProgramData[NUM_ITEMS_clCreateKernelsInProgram] =
129 {
130 {NULL, 0, NULL, NULL}
131 };
132
133 const struct clCreateUserEvent_st clCreateUserEventData[NUM_ITEMS_clCreateUserEvent] =
134 {
135 {NULL, NULL}
136 };
137
138 const struct clGetPlatformIDs_st clGetPlatformIDsData[NUM_ITEMS_clGetPlatformIDs] =
139 {
140 {0, NULL, 0}
141 };
142
143 /*
144 * Some log messages cause log mismatches when ICD loader calls a driver
145 * function while initializing platforms. The functions clGetPlatform* are most
146 * likely to be called at that time. But nothing stops an ICD loader from
147 * calling a ICD driver function anytime.
148 *
149 * FIXME: Figure out a good way to handle this.
150 */
151 #define ENABLE_MISMATCHING_PRINTS 0
152
test_clGetPlatformIDs(const struct clGetPlatformIDs_st * data)153 int test_clGetPlatformIDs(const struct clGetPlatformIDs_st* data)
154 {
155 cl_int ret_val;
156 size_t param_val_ret_size;
157 #define PLATFORM_NAME_SIZE 80
158 char platform_name[PLATFORM_NAME_SIZE];
159 cl_uint i;
160 cl_platform_id *all_platforms;
161
162 #if ENABLE_MISMATCHING_PRINTS
163 test_icd_app_log("clGetPlatformIDs(%u, %p, %p)\n",
164 data->num_entries,
165 &platforms,
166 &num_platforms);
167 #else
168 (void)data;
169 #endif
170
171 ret_val = clGetPlatformIDs(0,
172 NULL,
173 &num_platforms);
174
175 if (ret_val != CL_SUCCESS){
176 return -1;
177 }
178
179 all_platforms = (cl_platform_id *) malloc (num_platforms * sizeof(cl_platform_id));
180
181 ret_val = clGetPlatformIDs(num_platforms,
182 all_platforms,
183 NULL);
184
185 if (ret_val != CL_SUCCESS){
186 return -1;
187 }
188
189 for (i = 0; i < num_platforms; i++) {
190 ret_val = clGetPlatformInfo(all_platforms[i],
191 CL_PLATFORM_NAME,
192 PLATFORM_NAME_SIZE,
193 (void*)platform_name,
194 ¶m_val_ret_size );
195
196 if (ret_val == CL_SUCCESS ){
197 if(!strcmp(platform_name, "ICD_LOADER_TEST_OPENCL_STUB")) {
198 platform = all_platforms[i];
199 }
200 }
201 }
202 free(all_platforms);
203
204 #if ENABLE_MISMATCHING_PRINTS
205 test_icd_app_log("Value returned: %d\n", ret_val);
206 #endif
207
208 return 0;
209
210 }
211
test_clGetDeviceIDs(const struct clGetDeviceIDs_st * data)212 int test_clGetDeviceIDs(const struct clGetDeviceIDs_st* data)
213 {
214 int ret_val;
215
216 test_icd_app_log("clGetDeviceIDs(%p, %x, %u, %p, %p)\n",
217 platform,
218 data->device_type,
219 data->num_entries,
220 &devices,
221 data->num_devices);
222
223 ret_val = clGetDeviceIDs(platform,
224 data->device_type,
225 data->num_entries,
226 &devices,
227 data->num_devices);
228
229 test_icd_app_log("Value returned: %d\n", ret_val);
230
231 return 0;
232
233 }
234
test_clCreateContext(const struct clCreateContext_st * data)235 int test_clCreateContext(const struct clCreateContext_st* data)
236 {
237 test_icd_app_log("clCreateContext(%p, %u, %p, %p, %p, %p)\n",
238 data->properties,
239 data->num_devices,
240 &devices,
241 &createcontext_callback,
242 data->user_data,
243 data->errcode_ret);
244
245 context = clCreateContext(data->properties,
246 data->num_devices,
247 &devices,
248 &createcontext_callback,
249 data->user_data,
250 data->errcode_ret);
251
252 test_icd_app_log("Value returned: %p\n", context);
253
254 return 0;
255
256 }
257
test_clCreateContextFromType(const struct clCreateContextFromType_st * data)258 int test_clCreateContextFromType(const struct clCreateContextFromType_st* data)
259 {
260 test_icd_app_log("clCreateContextFromType(%p, %x, %p, %p, %p)\n",
261 context_properties,
262 data->device_type,
263 data->pfn_notify,
264 data->user_data,
265 data->errcode_ret);
266
267
268 context = clCreateContextFromType(context_properties,
269 data->device_type,
270 data->pfn_notify,
271 data->user_data,
272 data->errcode_ret);
273
274 test_icd_app_log("Value returned: %p\n", context);
275
276 return 0;
277
278 }
279
test_clCreateCommandQueue(const struct clCreateCommandQueue_st * data)280 int test_clCreateCommandQueue(const struct clCreateCommandQueue_st *data)
281 {
282 test_icd_app_log("clCreateCommandQueue(%p, %p, %x, %p)\n",
283 context,
284 devices,
285 data->properties,
286 data->errcode_ret);
287
288 command_queue = clCreateCommandQueue(context,
289 devices,
290 data->properties,
291 data->errcode_ret);
292
293 test_icd_app_log("Value returned: %p\n", command_queue);
294
295 return 0;
296
297 }
298
test_clCreateBuffer(const struct clCreateBuffer_st * data)299 int test_clCreateBuffer(const struct clCreateBuffer_st *data)
300 {
301 test_icd_app_log("clCreateBuffer(%p, %x, %u, %p, %p)\n",
302 context,
303 data->flags,
304 data->size,
305 data->host_ptr,
306 data->errcode_ret);
307
308 buffer = clCreateBuffer(context,
309 data->flags,
310 data->size,
311 data->host_ptr,
312 data->errcode_ret);
313
314 clReleaseMemObjectData->memobj = buffer;
315
316 test_icd_app_log("Value returned: %p\n", buffer);
317
318 return 0;
319
320 }
321
test_clCreateBufferWithProperties(const struct clCreateBufferWithProperties_st * data)322 int test_clCreateBufferWithProperties(const struct clCreateBufferWithProperties_st *data)
323 {
324 test_icd_app_log("clCreateBufferWithProperties(%p, %p, %x, %u, %p, %p)\n",
325 context,
326 data->properties,
327 data->flags,
328 data->size,
329 data->host_ptr,
330 data->errcode_ret);
331
332 buffer = clCreateBufferWithProperties(context,
333 data->properties,
334 data->flags,
335 data->size,
336 data->host_ptr,
337 data->errcode_ret);
338
339 clReleaseMemObjectData->memobj = buffer;
340
341 test_icd_app_log("Value returned: %p\n", buffer);
342
343 return 0;
344
345 }
346
test_clCreateSubBuffer(const struct clCreateSubBuffer_st * data)347 int test_clCreateSubBuffer(const struct clCreateSubBuffer_st *data)
348 {
349 test_icd_app_log("clCreateSubBuffer(%p, %x, %u, %p, %p)\n",
350 buffer,
351 data->flags,
352 data->buffer_create_type,
353 data->buffer_create_info,
354 data->errcode_ret);
355
356 subBuffer = clCreateSubBuffer(buffer,
357 data->flags,
358 data->buffer_create_type,
359 data->buffer_create_info,
360 data->errcode_ret);
361
362 clReleaseMemObjectDataSubBuffer->memobj = subBuffer;
363
364 test_icd_app_log("Value returned: %p\n", subBuffer);
365
366 return 0;
367
368 }
369
test_clCreateImage(const struct clCreateImage_st * data)370 int test_clCreateImage(const struct clCreateImage_st *data)
371 {
372 test_icd_app_log("clCreateImage(%p, %x, %p, %p, %p, %p)\n",
373 context,
374 data->flags,
375 data->image_format,
376 data->image_desc,
377 data->host_ptr,
378 data->errcode_ret);
379
380 image = clCreateImage(context,
381 data->flags,
382 data->image_format,
383 data->image_desc,
384 data->host_ptr,
385 data->errcode_ret);
386
387 clReleaseMemObjectDataImage[0].memobj = image;
388 test_icd_app_log("Value returned: %p\n", image);
389
390 return 0;
391
392 }
393
test_clCreateImageWithProperties(const struct clCreateImageWithProperties_st * data)394 int test_clCreateImageWithProperties(const struct clCreateImageWithProperties_st *data)
395 {
396 test_icd_app_log("clCreateImageWithProperties(%p, %p, %x, %p, %p, %p, %p)\n",
397 context,
398 data->properties,
399 data->flags,
400 data->image_format,
401 data->image_desc,
402 data->host_ptr,
403 data->errcode_ret);
404
405 image = clCreateImageWithProperties(context,
406 data->properties,
407 data->flags,
408 data->image_format,
409 data->image_desc,
410 data->host_ptr,
411 data->errcode_ret);
412
413 clReleaseMemObjectDataImage[0].memobj = image;
414 test_icd_app_log("Value returned: %p\n", image);
415
416 return 0;
417
418 }
419
test_clCreateImage2D(const struct clCreateImage2D_st * data)420 int test_clCreateImage2D(const struct clCreateImage2D_st *data)
421 {
422 test_icd_app_log("clCreateImage2D(%p, %x, %p, %u, %u, %u, %p, %p)\n",
423 context,
424 data->flags,
425 data->image_format,
426 data->image_width,
427 data->image_height,
428 data->image_row_pitch,
429 data->host_ptr,
430 data->errcode_ret);
431
432 image = clCreateImage2D(context,
433 data->flags,
434 data->image_format,
435 data->image_width,
436 data->image_height,
437 data->image_row_pitch,
438 data->host_ptr,
439 data->errcode_ret);
440
441 clReleaseMemObjectDataImage[0].memobj = image;
442 test_icd_app_log("Value returned: %p\n", image);
443
444 return 0;
445
446 }
447
test_clCreateImage3D(const struct clCreateImage3D_st * data)448 int test_clCreateImage3D(const struct clCreateImage3D_st *data)
449 {
450 test_icd_app_log("clCreateImage3D(%p, %x, %p, %u, %u, %u, %u, %u, %p, %p)\n",
451 context,
452 data->flags,
453 data->image_format,
454 data->image_width,
455 data->image_height,
456 data->image_depth,
457 data->image_row_pitch,
458 data->image_slice_pitch,
459 data->host_ptr,
460 data->errcode_ret);
461
462 image = clCreateImage3D(context,
463 data->flags,
464 data->image_format,
465 data->image_width,
466 data->image_height,
467 data->image_depth,
468 data->image_row_pitch,
469 data->image_slice_pitch,
470 data->host_ptr,
471 data->errcode_ret);
472
473 clReleaseMemObjectDataImage[0].memobj = image;
474 test_icd_app_log("Value returned: %p\n", image);
475
476 return 0;
477
478 }
479
test_clCreateSampler(const struct clCreateSampler_st * data)480 int test_clCreateSampler(const struct clCreateSampler_st *data)
481 {
482 test_icd_app_log("clCreateSampler(%p, %u, %u, %u, %p)\n",
483 context,
484 data->normalized_coords,
485 data->addressing_mode,
486 data->filter_mode,
487 data->errcode_ret);
488
489 sampler = clCreateSampler(context,
490 data->normalized_coords,
491 data->addressing_mode,
492 data->filter_mode,
493 data->errcode_ret);
494
495 test_icd_app_log("Value returned: %p\n", sampler);
496
497 return 0;
498
499 }
500
test_clCreateProgramWithSource(const struct clCreateProgramWithSource_st * data)501 int test_clCreateProgramWithSource(const struct clCreateProgramWithSource_st *data)
502 {
503 test_icd_app_log("clCreateProgramWithSource(%p, %u, %p, %p, %p)\n",
504 context,
505 data->count,
506 data->strings,
507 data->lengths,
508 data->errcode_ret);
509
510 program = clCreateProgramWithSource(context,
511 data->count,
512 data->strings,
513 data->lengths,
514 data->errcode_ret);
515
516 test_icd_app_log("Value returned: %p\n", program);
517
518 return 0;
519
520 }
521
test_clCreateProgramWithBinary(const struct clCreateProgramWithBinary_st * data)522 int test_clCreateProgramWithBinary(const struct clCreateProgramWithBinary_st *data)
523 {
524 test_icd_app_log("clCreateProgramWithBinary(%p, %u, %p, %p, %p, %p, %p)\n",
525 context,
526 data->num_devices,
527 &devices,
528 data->lengths,
529 data->binaries,
530 data->binary_status,
531 data->errcode_ret);
532
533 program = clCreateProgramWithBinary(context,
534 data->num_devices,
535 &devices,
536 data->lengths,
537 data->binaries,
538 data->binary_status,
539 data->errcode_ret);
540
541 test_icd_app_log("Value returned: %p\n", program);
542
543 return 0;
544
545 }
546
test_clCreateProgramWithBuiltInKernels(const struct clCreateProgramWithBuiltInKernels_st * data)547 int test_clCreateProgramWithBuiltInKernels(const struct clCreateProgramWithBuiltInKernels_st *data)
548 {
549 test_icd_app_log("clCreateProgramWithBuiltInKernels(%p, %u, %p, %p, %p)\n",
550 context,
551 data->num_devices,
552 &devices,
553 data->kernel_names,
554 data->errcode_ret);
555
556 program = clCreateProgramWithBuiltInKernels(context,
557 data->num_devices,
558 &devices,
559 data->kernel_names,
560 data->errcode_ret);
561
562 test_icd_app_log("Value returned: %p\n", program);
563
564 return 0;
565
566 }
567
test_clCreateKernel(const struct clCreateKernel_st * data)568 int test_clCreateKernel(const struct clCreateKernel_st* data)
569 {
570 test_icd_app_log("clCreateKernel(%p, %p, %p)\n",
571 program,
572 data->kernel_name,
573 data->errcode_ret);
574
575 kernel = clCreateKernel(program,
576 data->kernel_name,
577 data->errcode_ret);
578
579 test_icd_app_log("Value returned: %p\n", kernel);
580
581 return 0;
582
583 }
584
test_clCreateKernelsInProgram(const struct clCreateKernelsInProgram_st * data)585 int test_clCreateKernelsInProgram(const struct clCreateKernelsInProgram_st* data)
586 {
587 int ret_val;
588 test_icd_app_log("clCreateKernelsInProgram(%p, %u, %p, %p)\n",
589 program,
590 data->num_kernels,
591 &kernel,
592 data->num_kernels_ret);
593
594 ret_val = clCreateKernelsInProgram(program,
595 data->num_kernels,
596 &kernel,
597 data->num_kernels_ret);
598
599 test_icd_app_log("Value returned: %d\n", ret_val);
600
601 return 0;
602
603 }
604
test_clCreateUserEvent(const struct clCreateUserEvent_st * data)605 int test_clCreateUserEvent(const struct clCreateUserEvent_st* data)
606 {
607 test_icd_app_log("clCreateUserEvent(%p, %p)\n",
608 context,
609 data->errcode_ret);
610
611 event = clCreateUserEvent(context,
612 data->errcode_ret);
613
614 test_icd_app_log("Value returned: %p\n", event);
615
616 return 0;
617
618 }
619
620 const struct clReleaseSampler_st clReleaseSamplerData[NUM_ITEMS_clReleaseSampler] =
621 {
622 { NULL }
623 };
624
test_clReleaseSampler(const struct clReleaseSampler_st * data)625 int test_clReleaseSampler(const struct clReleaseSampler_st *data)
626 {
627 (void)data;
628 int ret_val = CL_OUT_OF_RESOURCES;
629
630 test_icd_app_log("clReleaseSampler(%p)\n", sampler);
631
632 ret_val = clReleaseSampler(sampler);
633
634 test_icd_app_log("Value returned: %d\n", ret_val);
635
636 return 0;
637
638 }
639
640
test_clReleaseMemObject(const struct clReleaseMemObject_st * data)641 int test_clReleaseMemObject(const struct clReleaseMemObject_st *data)
642 {
643 int ret_val = -15;
644 test_icd_app_log("clReleaseMemObject(%p)\n", data->memobj);
645
646 ret_val = clReleaseMemObject(data->memobj);
647
648 test_icd_app_log("Value returned: %d\n", ret_val);
649
650 return 0;
651 }
652
653 const struct clReleaseEvent_st clReleaseEventData[NUM_ITEMS_clReleaseEvent] =
654 {
655 {NULL}
656 };
657
test_clReleaseEvent(const struct clReleaseEvent_st * data)658 int test_clReleaseEvent(const struct clReleaseEvent_st* data)
659 {
660 (void)data;
661 int ret_val = CL_OUT_OF_RESOURCES;
662
663 test_icd_app_log("clReleaseEvent(%p)\n", event);
664
665 ret_val = clReleaseEvent(event);
666
667 test_icd_app_log("Value returned: %d\n", ret_val);
668
669 return 0;
670
671 }
672
673 const struct clReleaseKernel_st clReleaseKernelData[NUM_ITEMS_clReleaseKernel] =
674 {
675 {NULL}
676 };
677
test_clReleaseKernel(const struct clReleaseKernel_st * data)678 int test_clReleaseKernel(const struct clReleaseKernel_st* data)
679 {
680 (void)data;
681 int ret_val = CL_OUT_OF_RESOURCES;
682
683 test_icd_app_log("clReleaseKernel(%p)\n", kernel);
684
685 ret_val = clReleaseKernel(kernel);
686
687 test_icd_app_log("Value returned: %d\n", ret_val);
688
689 return 0;
690
691 }
692
693 const struct clReleaseProgram_st clReleaseProgramData[NUM_ITEMS_clReleaseProgram] =
694 {
695 {NULL}
696 };
697
test_clReleaseProgram(const struct clReleaseProgram_st * data)698 int test_clReleaseProgram(const struct clReleaseProgram_st *data)
699 {
700 (void)data;
701 int ret_val = CL_OUT_OF_RESOURCES;
702
703 test_icd_app_log("clReleaseProgram(%p)\n", program);
704
705 ret_val = clReleaseProgram(program);
706
707 test_icd_app_log("Value returned: %d\n", ret_val);
708
709 return 0;
710
711 }
712
713 const struct clReleaseCommandQueue_st clReleaseCommandQueueData[NUM_ITEMS_clReleaseCommandQueue] =
714 {
715 {NULL}
716 };
717
test_clReleaseCommandQueue(const struct clReleaseCommandQueue_st * data)718 int test_clReleaseCommandQueue(const struct clReleaseCommandQueue_st *data)
719 {
720 (void)data;
721 int ret_val = CL_OUT_OF_RESOURCES;
722
723 test_icd_app_log("clReleaseCommandQueue(%p)\n", command_queue);
724
725 ret_val = clReleaseCommandQueue(command_queue);
726
727 test_icd_app_log("Value returned: %d\n", ret_val);
728
729 return 0;
730
731 }
732
733 const struct clReleaseContext_st clReleaseContextData[NUM_ITEMS_clReleaseContext] =
734 {
735 {NULL}
736 };
737
test_clReleaseContext(const struct clReleaseContext_st * data)738 int test_clReleaseContext(const struct clReleaseContext_st* data)
739 {
740 (void)data;
741 int ret_val = CL_OUT_OF_RESOURCES;
742
743 test_icd_app_log("clReleaseContext(%p)\n", context);
744
745 ret_val = clReleaseContext(context);
746
747 test_icd_app_log("Value returned: %d\n", ret_val);
748
749 return 0;
750
751 }
752
753 const struct clReleaseDevice_st clReleaseDeviceData[NUM_ITEMS_clReleaseDevice] =
754 {
755 {NULL}
756 };
757
test_clReleaseDevice(const struct clReleaseDevice_st * data)758 int test_clReleaseDevice(const struct clReleaseDevice_st* data)
759 {
760 (void)data;
761 int ret_val = CL_OUT_OF_RESOURCES;
762
763 test_icd_app_log("clReleaseDevice(%p)\n", devices);
764
765 ret_val = clReleaseDevice(devices);
766
767 test_icd_app_log("Value returned: %d\n", ret_val);
768
769 return 0;
770
771 }
772
test_create_calls(void)773 int test_create_calls(void)
774 {
775 test_clGetPlatformIDs(clGetPlatformIDsData);
776
777 context_properties[1] = (cl_context_properties) platform;
778
779 test_clGetDeviceIDs(clGetDeviceIDsData);
780
781 test_clCreateContext(clCreateContextData);
782
783 test_clReleaseContext(clReleaseContextData);
784
785 test_clCreateContextFromType(clCreateContextFromTypeData);
786
787 test_clCreateCommandQueue(clCreateCommandQueueData);
788
789 test_clCreateBuffer(clCreateBufferData);
790
791 test_clReleaseMemObject(clReleaseMemObjectData);
792
793 test_clCreateBufferWithProperties(clCreateBufferWithPropertiesData);
794
795 test_clCreateSubBuffer(clCreateSubBufferData);
796
797 test_clCreateImage(clCreateImageData);
798
799 test_clReleaseMemObject(clReleaseMemObjectDataImage);
800
801 test_clCreateImageWithProperties(clCreateImageWithPropertiesData);
802
803 test_clReleaseMemObject(clReleaseMemObjectDataImage);
804
805 test_clCreateImage2D(clCreateImage2DData);
806
807 test_clReleaseMemObject(clReleaseMemObjectDataImage);
808
809 test_clCreateImage3D(clCreateImage3DData);
810
811 test_clCreateSampler(clCreateSamplerData);
812
813 test_clCreateProgramWithSource(clCreateProgramWithSourceData);
814
815 test_clReleaseProgram(clReleaseProgramData);
816
817 test_clCreateProgramWithBinary(clCreateProgramWithBinaryData);
818
819 test_clReleaseProgram(clReleaseProgramData);
820
821 test_clCreateProgramWithBuiltInKernels(clCreateProgramWithBuiltInKernelsData);
822
823 test_clCreateKernel(clCreateKernelData);
824
825 test_clCreateKernelsInProgram(clCreateKernelsInProgramData);
826
827 test_clCreateUserEvent(clCreateUserEventData);
828
829 return 0;
830
831 }
832
test_release_calls(void)833 int test_release_calls(void)
834 {
835 test_clReleaseSampler(clReleaseSamplerData);
836
837 test_clReleaseMemObject(clReleaseMemObjectData);
838
839 test_clReleaseMemObject(clReleaseMemObjectDataSubBuffer);
840
841 test_clReleaseMemObject(clReleaseMemObjectDataImage);
842
843 test_clReleaseEvent(clReleaseEventData);
844
845 test_clReleaseKernel(clReleaseKernelData);
846
847 test_clReleaseProgram(clReleaseProgramData);
848
849 test_clReleaseCommandQueue(clReleaseCommandQueueData);
850
851 test_clReleaseContext(clReleaseContextData);
852
853 test_clReleaseDevice(clReleaseDeviceData);
854
855 return 0;
856 }
857
858