1 #include <CL/cl.h>
2 #include "param_struct.h"
3 #include <platform/icd_test_log.h>
4
5 extern cl_context context;
6 extern cl_program program;
7 extern cl_platform_id platform;
8 extern cl_device_id devices;
9
10 extern void CL_CALLBACK program_callback(cl_program _a, void* _b);
11
12 const struct clRetainProgram_st clRetainProgramData[NUM_ITEMS_clRetainProgram]=
13 {
14 {NULL}
15 };
16
17 const struct clBuildProgram_st clBuildProgramData[NUM_ITEMS_clBuildProgram]=
18 {
19 {NULL,0,NULL,NULL,program_callback,NULL}
20 };
21
22 const struct clCompileProgram_st clCompileProgramData[NUM_ITEMS_clCompileProgram]=
23 {
24 {NULL,0,NULL,NULL,0,NULL,NULL,program_callback,NULL}
25 };
26
27 const struct clLinkProgram_st clLinkProgramData[NUM_ITEMS_clLinkProgram]=
28 {
29 {NULL,0,NULL,NULL,0,NULL,program_callback,NULL,NULL}
30 };
31
32 const struct clUnloadPlatformCompiler_st clUnloadPlatformCompilerData[NUM_ITEMS_clUnloadPlatformCompiler]=
33 {
34 {NULL}
35 };
36
37 const struct clGetExtensionFunctionAddressForPlatform_st clGetExtensionFunctionAddressForPlatformData[NUM_ITEMS_clGetExtensionFunctionAddressForPlatform]=
38 {
39 {NULL, ""}
40 };
41
42 const struct clGetProgramInfo_st clGetProgramInfoData[NUM_ITEMS_clGetProgramInfo]=
43 {
44 {NULL,0,0,NULL,NULL}
45 };
46
47 const struct clGetProgramBuildInfo_st clGetProgramBuildInfoData[NUM_ITEMS_clGetProgramBuildInfo]=
48 {
49 {NULL,NULL,0,0,NULL,NULL}
50 };
51
test_clRetainProgram(const struct clRetainProgram_st * data)52 int test_clRetainProgram(const struct clRetainProgram_st *data)
53 {
54 (void)data;
55 cl_int ret_val;
56
57 test_icd_app_log("clRetainProgram(%p)\n",
58 program);
59
60 ret_val=clRetainProgram(program);
61
62 test_icd_app_log("Value returned: %d\n",
63 ret_val);
64
65 return 0;
66
67 }
68
test_clBuildProgram(const struct clBuildProgram_st * data)69 int test_clBuildProgram(const struct clBuildProgram_st *data)
70 {
71 cl_int ret_val;
72
73 test_icd_app_log("clBuildProgram(%p, %u, %p, %p, %p, %p)\n",
74 program,
75 data->num_devices,
76 &devices,
77 data->options,
78 data->pfn_notify,
79 data->user_data);
80
81 ret_val=clBuildProgram(program,
82 data->num_devices,
83 &devices,
84 data->options,
85 data->pfn_notify,
86 data->user_data);
87
88 test_icd_app_log("Value returned: %d\n", ret_val);
89
90 return 0;
91
92 }
93
test_clCompileProgram(const struct clCompileProgram_st * data)94 int test_clCompileProgram(const struct clCompileProgram_st *data)
95 {
96 cl_int ret_val;
97
98 test_icd_app_log("clCompileProgram(%p, %u, %p, %p, %u, %p, %p, %p)\n",
99 program,
100 data->num_devices,
101 &devices,
102 data->options,
103 data->num_input_headers,
104 data->header_include_names,
105 data->pfn_notify,
106 data->user_data);
107
108 ret_val=clCompileProgram(program,
109 data->num_devices,
110 &devices,
111 data->options,
112 data->num_input_headers,
113 data->headers,
114 data->header_include_names,
115 data->pfn_notify,
116 data->user_data);
117
118 test_icd_app_log("Value returned: %d\n", ret_val);
119
120 return 0;
121
122 }
123
test_clLinkProgram(const struct clLinkProgram_st * data)124 int test_clLinkProgram(const struct clLinkProgram_st *data)
125 {
126 cl_program program;
127 test_icd_app_log("clLinkProgram(%p, %u, %p, %p, %u, %p, %p, %p, %p)\n",
128 context,
129 data->num_devices,
130 data->device_list,
131 data->options,
132 data->num_input_programs,
133 data->input_programs,
134 data->pfn_notify,
135 data->user_data,
136 data->errcode_ret);
137
138 program=clLinkProgram(context,
139 data->num_devices,
140 data->device_list,
141 data->options,
142 data->num_input_programs,
143 data->input_programs,
144 data->pfn_notify,
145 data->user_data,
146 data->errcode_ret);
147
148 test_icd_app_log("Value returned: %p\n", program);
149
150 return 0;
151
152 }
153
test_clUnloadPlatformCompiler(const struct clUnloadPlatformCompiler_st * data)154 int test_clUnloadPlatformCompiler(const struct clUnloadPlatformCompiler_st *data)
155 {
156 (void)data;
157 cl_int ret_val;
158
159 test_icd_app_log("clUnloadPlatformCompiler(%p)\n", platform);
160
161 ret_val=clUnloadPlatformCompiler(platform);
162
163 test_icd_app_log("Value returned: %d\n", ret_val);
164
165 return 0;
166
167 }
168
test_clGetExtensionFunctionAddressForPlatform(const struct clGetExtensionFunctionAddressForPlatform_st * data)169 int test_clGetExtensionFunctionAddressForPlatform(const struct clGetExtensionFunctionAddressForPlatform_st *data)
170 {
171 void *return_value;
172 test_icd_app_log("clGetExtensionFunctionAddressForPlatform(%p, %p)\n",
173 platform,
174 data->func_name);
175
176 return_value=clGetExtensionFunctionAddressForPlatform(platform,
177 data->func_name);
178
179 test_icd_app_log("Value returned: %p\n", return_value);
180
181 return 0;
182
183 }
184
test_clGetProgramInfo(const struct clGetProgramInfo_st * data)185 int test_clGetProgramInfo(const struct clGetProgramInfo_st *data)
186 {
187 cl_int ret_val;
188
189 test_icd_app_log("clGetProgramInfo(%p, %u, %u, %p, %p)\n",
190 program,
191 data->param_name,
192 data->param_value_size,
193 data->param_value,
194 data->param_value_size_ret);
195
196 ret_val=clGetProgramInfo(program,
197 data->param_name,
198 data->param_value_size,
199 data->param_value,
200 data->param_value_size_ret);
201
202 test_icd_app_log("Value returned: %d\n", ret_val);
203
204 return 0;
205
206 }
207
test_clGetProgramBuildInfo(const struct clGetProgramBuildInfo_st * data)208 int test_clGetProgramBuildInfo(const struct clGetProgramBuildInfo_st *data)
209 {
210 cl_int ret_val;
211
212 test_icd_app_log("clGetProgramBuildInfo(%p, %p, %u, %u, %p, %p)\n",
213 program,
214 data->device,
215 data->param_name,
216 data->param_value_size,
217 data->param_value,
218 data->param_value_size_ret);
219
220 ret_val=clGetProgramBuildInfo(program,
221 data->device,
222 data->param_name,
223 data->param_value_size,
224 data->param_value,
225 data->param_value_size_ret);
226
227 test_icd_app_log("Value returned: %d\n", ret_val);
228
229 return 0;
230
231 }
232
test_program_objects()233 int test_program_objects()
234 {
235 int i;
236
237 for (i=0;i<NUM_ITEMS_clRetainProgram;i++) {
238 test_clRetainProgram(&clRetainProgramData[i]);
239 }
240
241 for (i=0;i<NUM_ITEMS_clBuildProgram;i++) {
242 test_clBuildProgram(&clBuildProgramData[i]);
243 }
244
245 for (i=0;i<NUM_ITEMS_clCompileProgram;i++) {
246 test_clCompileProgram(&clCompileProgramData[i]);
247 }
248
249 for (i=0;i<NUM_ITEMS_clLinkProgram;i++) {
250 test_clLinkProgram(&clLinkProgramData[i]);
251 }
252
253 for (i=0;i<NUM_ITEMS_clGetExtensionFunctionAddressForPlatform;i++) {
254 test_clGetExtensionFunctionAddressForPlatform(&clGetExtensionFunctionAddressForPlatformData[i]);
255 }
256
257 for (i=0;i<NUM_ITEMS_clUnloadPlatformCompiler;i++) {
258 test_clUnloadPlatformCompiler(&clUnloadPlatformCompilerData[i]);
259 }
260
261 for (i=0;i<NUM_ITEMS_clGetProgramInfo;i++) {
262 test_clGetProgramInfo(&clGetProgramInfoData[i]);
263 }
264
265 for (i=0;i<NUM_ITEMS_clGetProgramBuildInfo;i++) {
266 test_clGetProgramBuildInfo(&clGetProgramBuildInfoData[i]);
267 }
268
269 return 0;
270
271 }
272
273