• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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                 &param_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