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