xref: /aosp_15_r20/external/OpenCL-ICD-Loader/test/loader_test/test_program_objects.c (revision 1cddb830dba8aa7c1cc1039338e56b3b9fa24952)
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