xref: /aosp_15_r20/external/OpenCL-ICD-Loader/test/loader_test/test_platforms.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 
7 extern cl_platform_id  platform;
8 
9 extern cl_device_id devices;
10 
11 extern void CL_CALLBACK setcontextdestructor_callback(cl_context _a, void* _b);
12 
13 struct clRetainContext_st clRetainContextData[NUM_ITEMS_clRetainContext] =
14 {
15     {NULL}
16 };
17 
18 struct clGetContextInfo_st clGetContextInfoData[NUM_ITEMS_clGetContextInfo] =
19 {
20     {NULL, 0, 0, NULL, NULL}
21 };
22 
23 struct clSetContextDestructorCallback_st clSetContextDestructorCallbackData[NUM_ITEMS_clSetContextDestructorCallback] =
24 {
25     {NULL, setcontextdestructor_callback, NULL}
26 };
27 
28 struct clGetPlatformInfo_st clGetPlatformInfoData[NUM_ITEMS_clGetPlatformInfo] =
29 {
30     {NULL, 0, 0, NULL, NULL}
31 };
32 
33 struct clGetDeviceInfo_st clGetDeviceInfoData[NUM_ITEMS_clGetDeviceInfo] =
34 {
35     {NULL, 0, 0, NULL, NULL}
36 };
37 
38 struct clCreateSubDevices_st clCreateSubDevicesData[NUM_ITEMS_clCreateSubDevices] =
39 {
40     {NULL, NULL, 0, NULL, NULL}
41 };
42 
43 
44 struct clRetainDevice_st clRetainDeviceData[NUM_ITEMS_clRetainDevice] =
45 {
46     {NULL}
47 };
48 
49 
test_clRetainContext(const struct clRetainContext_st * data)50 int test_clRetainContext(const struct clRetainContext_st* data)
51 {
52     (void)data;
53     cl_int ret_val;
54 
55     test_icd_app_log("clRetainContext(%p)\n", context);
56 
57     ret_val = clRetainContext(context);
58 
59     test_icd_app_log("Value returned: %d\n", ret_val);
60 
61     return 0;
62 }
63 
64 
test_clGetContextInfo(const struct clGetContextInfo_st * data)65 int test_clGetContextInfo(const struct clGetContextInfo_st* data)
66 {
67     cl_int ret_val;
68 
69     test_icd_app_log("clGetContextInfo(%p, %u, %u, %p, %p)\n",
70                      context,
71                      data->param_name,
72                      data->param_value_size,
73                      data->param_value,
74                      data->param_value_size_ret);
75 
76 
77     ret_val = clGetContextInfo(context,
78             data->param_name,
79             data->param_value_size,
80             data->param_value,
81             data->param_value_size_ret);
82 
83     test_icd_app_log("Value returned: %d\n", ret_val);
84 
85     return 0;
86 }
87 
88 
test_clSetContextDestructorCallback(const struct clSetContextDestructorCallback_st * data)89 int test_clSetContextDestructorCallback(
90     const struct clSetContextDestructorCallback_st* data)
91 {
92     cl_int ret_val;
93 
94     test_icd_app_log(
95         "clSetContextDestructorCallback(%p, %p, %p)\n",
96         context,
97         data->pfn_notify,
98         data->user_data);
99 
100     ret_val = clSetContextDestructorCallback(
101         context,
102         data->pfn_notify,
103         data->user_data);
104 
105     test_icd_app_log("Value returned: %d\n", ret_val);
106 
107     return 0;
108 }
109 
110 
test_clGetPlatformInfo(const struct clGetPlatformInfo_st * data)111 int test_clGetPlatformInfo(const struct clGetPlatformInfo_st* data)
112 {
113     cl_int ret_val;
114 
115     test_icd_app_log("clGetPlatformInfo(%p, %u, %u, %p, %p)\n",
116                      platform,
117                      data->param_name,
118                      data->param_value_size,
119                      data->param_value,
120                      data->param_value_size_ret);
121 
122     ret_val = clGetPlatformInfo(platform,
123             data->param_name,
124             data->param_value_size,
125             data->param_value,
126             data->param_value_size_ret);
127 
128     test_icd_app_log("Value returned: %d\n", ret_val);
129 
130     return 0;
131 
132 }
133 
test_clGetDeviceInfo(const struct clGetDeviceInfo_st * data)134 int test_clGetDeviceInfo(const struct clGetDeviceInfo_st* data)
135 {
136     cl_int ret_val;
137 
138     test_icd_app_log("clGetDeviceInfo(%p, %u, %u, %p, %p)\n",
139                      devices,
140                      data->param_name,
141                      data->param_value_size,
142                      data->param_value,
143                      data->param_value_size_ret);
144 
145     ret_val = clGetDeviceInfo(devices,
146             data->param_name,
147             data->param_value_size,
148             data->param_value,
149             data->param_value_size_ret);
150 
151     test_icd_app_log("Value returned: %d\n", ret_val);
152 
153     return 0;
154 }
155 
test_clCreateSubDevices(const struct clCreateSubDevices_st * data)156 int test_clCreateSubDevices(const struct clCreateSubDevices_st* data)
157 {
158     cl_int ret_val;
159 
160     test_icd_app_log("clCreateSubDevices(%p, %p, %u, %p, %p)\n",
161                      devices,
162                      data->properties,
163                      data->num_entries,
164                      &devices,
165                      data->num_devices);
166 
167     ret_val = clCreateSubDevices(devices,
168             data->properties,
169             data->num_entries,
170             &devices,
171             data->num_devices);
172 
173     test_icd_app_log("Value returned: %d\n", ret_val);
174 
175     return 0;
176 }
177 
test_clRetainDevice(const struct clRetainDevice_st * data)178 int test_clRetainDevice(const struct clRetainDevice_st* data)
179 {
180     (void)data;
181     cl_int ret_val;
182 
183     test_icd_app_log("clRetainDevice(%p)\n", devices);
184 
185     ret_val = clRetainDevice(devices);
186 
187     test_icd_app_log("Value returned: %d\n", ret_val);
188 
189     return 0;
190 }
191 
test_platforms()192 int test_platforms()
193 {
194     int i;
195 
196     for (i = 0;i<NUM_ITEMS_clRetainContext;i++) {
197         test_clRetainContext(&clRetainContextData[i]);
198     }
199 
200     for (i = 0;i<NUM_ITEMS_clSetContextDestructorCallback;i++) {
201         test_clSetContextDestructorCallback(&clSetContextDestructorCallbackData[i]);
202     }
203 
204     for (i = 0;i<NUM_ITEMS_clGetContextInfo;i++) {
205         test_clGetContextInfo(&clGetContextInfoData[i]);
206     }
207 
208 #if 0
209     for (i = 0;i<NUM_ITEMS_clGetPlatformInfo;i++) {
210         test_clGetPlatformInfo(&clGetPlatformInfoData[i]);
211     }
212 #endif
213 
214     for (i = 0;i<NUM_ITEMS_clGetDeviceInfo;i++) {
215         test_clGetDeviceInfo(&clGetDeviceInfoData[i]);
216     }
217 
218     for (i = 0;i<NUM_ITEMS_clCreateSubDevices;i++) {
219         test_clCreateSubDevices(&clCreateSubDevicesData[i]);
220     }
221 
222     for (i = 0;i<NUM_ITEMS_clRetainDevice;i++) {
223         test_clRetainDevice(&clRetainDeviceData[i]);
224     }
225 
226     return 0;
227 }
228