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 ¶m_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