c1954407ffd033682d1f25dadfaf18544ebc77db
[platform/hal/api/common.git] / tests / unittest / test_hal.cc
1 /*
2  * Copyright (c) 2020 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <tizen.h>
18
19 #include <gtest/gtest.h>
20 #include <gmock/gmock.h>
21
22 #include <vector>
23 #include <memory>
24
25 #include "hal-common.h"
26 #include "hal-common-interface.h"
27
28 #include "../../src/hal-api-conf.h"
29 #include "../../src/common.h"
30
31 #define MAX_BUFF        128
32
33 using namespace std;
34
35
36 extern "C" const char *tzplatform_mkpath(
37    enum tzplatform_variable id, const char *path) {
38    return "../../hal-api.json";
39 }
40
41 class CommonHaltest : public testing::Test {
42  public:
43   CommonHaltest() {}
44   virtual ~CommonHaltest() {}
45   virtual void SetUp() {}
46   virtual void TearDown() {}
47 };
48
49 TEST(CommonHaltest, test_symbol_name_invalid_module) {
50   char ret_unknown[MAX_BUFF] = {0, };
51   char ret_end[MAX_BUFF] = {0, };
52   int ret;
53
54   ret = hal_common_get_backend_symbol_name(HAL_MODULE_UNKNOWN, ret_unknown, MAX_BUFF);
55   EXPECT_TRUE(ret != TIZEN_ERROR_NONE);
56
57   ret = hal_common_get_backend_symbol_name(HAL_MODULE_UNKNOWN, ret_end, MAX_BUFF);
58   EXPECT_TRUE(ret != TIZEN_ERROR_NONE);
59 }
60
61 TEST(CommonHaltest, test_check_backend_abi_version_invalid_parameter) {
62   int ret;
63
64   ret = hal_common_check_backend_abi_version(HAL_MODULE_UNKNOWN, HAL_ABI_VERSION_TIZEN_6_5);
65   EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
66
67   ret = hal_common_check_backend_abi_version(HAL_MODULE_END, HAL_ABI_VERSION_TIZEN_6_5);
68   EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
69
70   ret = hal_common_check_backend_abi_version(HAL_MODULE_TBM, HAL_ABI_VERSION_UNKNOWN);
71   EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
72
73   ret = hal_common_check_backend_abi_version(HAL_MODULE_TBM, HAL_ABI_VERSION_END);
74   EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
75 }
76
77 TEST(CommonHaltest, get_backend_library_name_unknown) {
78   char ret_name[MAX_BUFF] = {0, };
79   int ret = hal_common_get_backend_library_name(HAL_MODULE_UNKNOWN, ret_name, MAX_BUFF);
80   EXPECT_TRUE(ret != TIZEN_ERROR_NONE);
81 }
82
83 class HalInfo {
84 public:
85   enum hal_module module_;
86   enum hal_group group_;
87   enum hal_license license_;
88   const char *module_name_;
89   const char *library_name_;
90   const char *library_name_64bit_;
91   const char *symbol_name_;
92   vector<struct hal_abi_version_match> versions_;
93
94   HalInfo(enum hal_module module, enum hal_group group, enum hal_license license,
95     const char *module_name, const char *library_name, const char *library_name_64bit,
96     const char *symbol_name, vector<struct hal_abi_version_match> versions) :
97     module_(module), group_(group), license_(license),
98     module_name_(module_name), library_name_(library_name),
99     library_name_64bit_(library_name_64bit), symbol_name_(symbol_name),
100     versions_(versions) {}
101 };
102
103 class HalInfoMatchedTest : public ::testing::TestWithParam<HalInfo> {};
104
105 INSTANTIATE_TEST_CASE_P(CommonHaltest,
106   HalInfoMatchedTest,
107   ::testing::Values(
108   HalInfo(HAL_MODULE_TBM, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT,
109     "HAL_MODULE_TBM", "/hal/lib/libhal-backend-tbm.so",
110     "/hal/lib64/libhal-backend-tbm.so", "hal_backend_tbm_data",
111     vector<struct hal_abi_version_match>{{
112     .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
113     .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
114     }}
115   ),
116
117   HalInfo(HAL_MODULE_TDM, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT,
118     "HAL_MODULE_TDM", "/hal/lib/libhal-backend-tdm.so",
119     "/hal/lib64/libhal-backend-tdm.so", "hal_backend_tdm_data",
120     vector<struct hal_abi_version_match>{{
121       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
122       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
123     }}
124   ),
125
126   HalInfo(HAL_MODULE_COREGL, HAL_GROUP_GRAPHICS, HAL_LICENSE_UNKNOWN,
127     "HAL_MODULE_COREGL", "", "", "", {}),
128
129   HalInfo(HAL_MODULE_INPUT, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT,
130     "HAL_MODULE_INPUT", "", "", "", {}),
131
132   HalInfo(HAL_MODULE_AUDIO, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
133     "HAL_MODULE_AUDIO", "/hal/lib/libhal-backend-audio.so",
134     "/hal/lib64/libhal-backend-audio.so", "hal_backend_audio_data",
135     vector<struct hal_abi_version_match>{{
136       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
137       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
138     }}
139   ),
140
141   HalInfo(HAL_MODULE_CAMERA, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
142     "HAL_MODULE_CAMERA", "/hal/lib/libhal-backend-camera.so",
143     "/hal/lib64/libhal-backend-camera.so", "hal_backend_camera_data",
144     vector<struct hal_abi_version_match>{{
145       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
146       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
147     }}
148   ),
149
150   HalInfo(HAL_MODULE_RADIO, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
151     "HAL_MODULE_RADIO", "/hal/lib/libhal-backend-radio.so",
152     "/hal/lib64/libhal-backend-radio.so", "hal_backend_radio_data",
153     vector<struct hal_abi_version_match>{{
154       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
155       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
156     }}
157   ),
158
159   HalInfo(HAL_MODULE_CODEC, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
160     "HAL_MODULE_CODEC", "", "", "", {}),
161
162   HalInfo(HAL_MODULE_USB_AUDIO, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
163     "HAL_MODULE_USB_AUDIO", "", "", "", {}),
164
165   HalInfo(HAL_MODULE_ALSAUCM, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
166     "HAL_MODULE_ALSAUCM", "", "", "", {}),
167
168   HalInfo(HAL_MODULE_BLUETOOTH, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
169     "HAL_MODULE_BLUETOOTH", "/hal/lib/libhal-backend-bluetooth.so",
170     "/hal/lib64/libhal-backend-bluetooth.so", "hal_backend_bluetooth_data",
171     vector<struct hal_abi_version_match>{{
172       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
173       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
174     }}
175   ),
176
177   HalInfo(HAL_MODULE_WIFI, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
178     "HAL_MODULE_WIFI", "/hal/lib/libhal-backend-wifi.so",
179     "/hal/lib64/libhal-backend-wifi.so", "hal_backend_wifi_data",
180     vector<struct hal_abi_version_match>{{
181       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
182       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
183     }}
184   ),
185
186   HalInfo(HAL_MODULE_NAN, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
187     "HAL_MODULE_NAN", "", "", "", {}),
188
189   HalInfo(HAL_MODULE_NFC, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
190     "HAL_MODULE_NFC", "/hal/lib/libhal-backend-nfc.so",
191     "/hal/lib64/libhal-backend-nfc.so", "hal_backend_nfc_data",
192     vector<struct hal_abi_version_match>{{
193       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
194       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
195     }}
196   ),
197
198   HalInfo(HAL_MODULE_ZIGBEE, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
199     "HAL_MODULE_ZIGBEE", "/hal/lib/libhal-backend-zigbee.so",
200     "/hal/lib64/libhal-backend-zigbee.so", "hal_backend_zigbee_data",
201     vector<struct hal_abi_version_match>{{
202       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
203       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
204     }}
205   ),
206
207   HalInfo(HAL_MODULE_UWB, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
208     "HAL_MODULE_UWB", "/hal/lib/libhal-backend-uwb.so",
209     "/hal/lib64/libhal-backend-uwb.so", "hal_backend_uwb_data",
210     vector<struct hal_abi_version_match>{{
211       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
212       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
213     }}
214   ),
215
216   HalInfo(HAL_MODULE_MTP, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
217     "HAL_MODULE_MTP", "", "", "", {}),
218
219   HalInfo(HAL_MODULE_TELEPHONY, HAL_GROUP_TELEPHONY, HAL_LICENSE_APACHE_2_0,
220     "HAL_MODULE_TELEPHONY", "", "", "", {}),
221
222   HalInfo(HAL_MODULE_LOCATION, HAL_GROUP_LOCATION, HAL_LICENSE_APACHE_2_0,
223     "HAL_MODULE_LOCATION", "/hal/lib/libhal-backend-location.so",
224     "/hal/lib64/libhal-backend-location.so", "hal_backend_location_data",
225     vector<struct hal_abi_version_match>{{
226       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
227       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
228     }}
229   ),
230
231   HalInfo(HAL_MODULE_COMMON, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
232     "HAL_MODULE_COMMON", "", "", "", {}),
233
234   HalInfo(HAL_MODULE_POWER, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
235     "HAL_MODULE_POWER", "/hal/lib/libhal-backend-power.so",
236     "/hal/lib64/libhal-backend-power.so", "hal_backend_power_data",
237     vector<struct hal_abi_version_match>{{
238       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
239       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
240     }}
241   ),
242
243   HalInfo(HAL_MODULE_SENSOR, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
244     "HAL_MODULE_SENSOR", "/hal/lib/libhal-backend-sensor.so",
245     "/hal/lib64/libhal-backend-sensor.so", "hal_backend_sensor_data",
246     vector<struct hal_abi_version_match>{{
247       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
248       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
249     }}
250   ),
251
252   HalInfo(HAL_MODULE_PERIPHERAL, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
253     "HAL_MODULE_PERIPHERAL", "", "", "", {}),
254
255   HalInfo(HAL_MODULE_DEVICE_BATTERY, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
256     "HAL_MODULE_DEVICE_BATTERY", "/hal/lib/libhal-backend-device-battery.so",
257     "/hal/lib64/libhal-backend-device-battery.so", "hal_backend_device_battery_data",
258     vector<struct hal_abi_version_match>{{
259       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
260       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
261     }}
262   ),
263
264   HalInfo(HAL_MODULE_DEVICE_BEZEL, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
265     "HAL_MODULE_DEVICE_BEZEL", "/hal/lib/libhal-backend-device-bezel.so",
266     "/hal/lib64/libhal-backend-device-bezel.so", "hal_backend_device_bezel_data",
267     vector<struct hal_abi_version_match>{{
268       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
269       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
270     }}
271   ),
272
273   HalInfo(HAL_MODULE_DEVICE_DISPLAY, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
274     "HAL_MODULE_DEVICE_DISPLAY", "/hal/lib/libhal-backend-device-display.so",
275     "/hal/lib64/libhal-backend-device-display.so", "hal_backend_device_display_data",
276     vector<struct hal_abi_version_match>{{
277       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
278       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
279     }}
280   ),
281
282   HalInfo(HAL_MODULE_DEVICE_IR, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
283     "HAL_MODULE_DEVICE_IR", "/hal/lib/libhal-backend-device-ir.so",
284     "/hal/lib64/libhal-backend-device-ir.so", "hal_backend_device_ir_data",
285     vector<struct hal_abi_version_match>{{
286       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
287       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
288     }}
289   ),
290
291   HalInfo(HAL_MODULE_DEVICE_TOUCHSCREEN, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
292     "HAL_MODULE_DEVICE_TOUCHSCREEN", "/hal/lib/libhal-backend-device-touchscreen.so",
293     "/hal/lib64/libhal-backend-device-touchscreen.so", "hal_backend_device_touchscreen_data",
294     vector<struct hal_abi_version_match>{{
295       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
296       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
297     }}
298   ),
299
300   HalInfo(HAL_MODULE_DEVICE_LED, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
301     "HAL_MODULE_DEVICE_LED", "/hal/lib/libhal-backend-device-led.so",
302     "/hal/lib64/libhal-backend-device-led.so", "hal_backend_device_led_data",
303     vector<struct hal_abi_version_match>{{
304       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
305       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
306     }}
307   ),
308
309   HalInfo(HAL_MODULE_DEVICE_BOARD, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
310     "HAL_MODULE_DEVICE_BOARD", "/hal/lib/libhal-backend-device-board.so",
311     "/hal/lib64/libhal-backend-device-board.so", "hal_backend_device_board_data",
312     vector<struct hal_abi_version_match>{{
313       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
314       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
315     }}
316   ),
317
318   HalInfo(HAL_MODULE_DEVICE_EXTERNAL_CONNECTION, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
319     "HAL_MODULE_DEVICE_EXTERNAL_CONNECTION", "/hal/lib/libhal-backend-device-external-connection.so",
320     "/hal/lib64/libhal-backend-device-external-connection.so", "hal_backend_device_external_connection_data",
321     vector<struct hal_abi_version_match>{{
322       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
323       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
324     }}
325   ),
326
327   HalInfo(HAL_MODULE_DEVICE_THERMAL, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
328     "HAL_MODULE_DEVICE_THERMAL", "/hal/lib/libhal-backend-device-thermal.so",
329     "/hal/lib64/libhal-backend-device-thermal.so", "hal_backend_device_thermal_data",
330     vector<struct hal_abi_version_match>{{
331       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
332       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
333     }}
334   ),
335
336   HalInfo(HAL_MODULE_DEVICE_USB_GADGET, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
337     "HAL_MODULE_DEVICE_USB_GADGET", "/hal/lib/libhal-backend-device-usb-gadget.so",
338     "/hal/lib64/libhal-backend-device-usb-gadget.so", "hal_backend_device_usb_gadget_data",
339     vector<struct hal_abi_version_match>{{
340       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
341       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
342     }}
343   ),
344
345   HalInfo(HAL_MODULE_DEVICE_HAPTIC, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
346     "HAL_MODULE_DEVICE_HAPTIC", "/hal/lib/libhal-backend-device-haptic.so",
347     "/hal/lib64/libhal-backend-device-haptic.so", "hal_backend_device_haptic_data",
348     vector<struct hal_abi_version_match>{{
349       .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
350       .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
351     }}
352   )
353 ));
354
355 TEST_P(HalInfoMatchedTest, get_backend_library_name) {
356   char ret_library_name[MAX_BUFF] = {0, };
357   int ret;
358   auto info = GetParam();
359
360   ret = hal_common_get_backend_library_name(info.module_, ret_library_name, MAX_BUFF);
361   EXPECT_TRUE(ret == TIZEN_ERROR_NONE);
362 #if defined(__aarch64__)
363   EXPECT_STREQ(info.library_name_64bit_, ret_library_name) << "module name is " << info.module_name_;
364 #else
365   EXPECT_STREQ(info.library_name_, ret_library_name) << "module name is " << info.module_name_;
366 #endif
367 }
368
369 TEST_P(HalInfoMatchedTest, test_symbol_name_module_matching) {
370   char ret_symbol_name[MAX_BUFF] = {0, };
371   int ret;
372   auto info = GetParam();
373
374   ret = hal_common_get_backend_symbol_name(info.module_, ret_symbol_name, MAX_BUFF);
375   EXPECT_TRUE(ret == TIZEN_ERROR_NONE);
376   EXPECT_STREQ(ret_symbol_name, info.symbol_name_) << "module name is " << info.module_name_;
377 }
378
379 TEST_P(HalInfoMatchedTest, test_group_module_matching) {
380   struct __hal_module_info *info = NULL;
381
382   auto result_info = GetParam();
383
384   _hal_api_conf_init();
385   info = _hal_api_conf_get_module_info(result_info.module_);
386   ASSERT_TRUE(info != nullptr) << "module name is " << result_info.module_name_;
387   EXPECT_EQ(info->group, result_info.group_) << "module name is " << result_info.module_name_;
388   _hal_api_conf_exit();
389 }
390
391 TEST_P(HalInfoMatchedTest, test_license_module_matching) {
392   struct __hal_module_info *info = NULL;
393
394   auto result_info = GetParam();
395
396   _hal_api_conf_init();
397   info = _hal_api_conf_get_module_info(result_info.module_);
398   ASSERT_TRUE(info != nullptr) << "module name is " << result_info.module_name_;
399   EXPECT_EQ(info->license, result_info.license_) << "module name is " << result_info.module_name_;
400   _hal_api_conf_exit();
401 }
402
403 TEST_P(HalInfoMatchedTest, test_module_name_matching) {
404   struct __hal_module_info *info = NULL;
405
406   auto result_info = GetParam();
407
408   _hal_api_conf_init();
409   info = _hal_api_conf_get_module_info(result_info.module_);
410   ASSERT_TRUE(info != nullptr) << "module name is " << result_info.module_name_;
411   EXPECT_STREQ(info->module_name, result_info.module_name_) << "module name is " << result_info.module_name_;
412   _hal_api_conf_exit();
413 }
414
415 TEST_P(HalInfoMatchedTest, test_check_backend_abi_version) {
416   struct __hal_module_info *info = NULL;
417   auto result_info = GetParam();
418
419   _hal_api_conf_init();
420   info = _hal_api_conf_get_module_info(result_info.module_);
421   ASSERT_TRUE(info != nullptr);
422
423   vector<struct hal_abi_version_match> versions = result_info.versions_;
424   struct hal_abi_version_match *meta_versions = info->abi_versions;
425
426   for (unsigned int i = 0; i < versions.size(); i++) {
427     struct hal_abi_version_match tmp_version = versions[i];
428
429     int ret = hal_common_check_backend_abi_version(result_info.module_, tmp_version.platform_abi_version);
430     EXPECT_EQ(ret, TIZEN_ERROR_NONE) << "module name is " << result_info.module_name_;
431     EXPECT_EQ(meta_versions[i].platform_abi_version, tmp_version.platform_abi_version) << "module name is " << result_info.module_name_;;
432     EXPECT_EQ(meta_versions[i].backend_min_abi_version, tmp_version.backend_min_abi_version) << "module name is " << result_info.module_name_;;
433   }
434   _hal_api_conf_exit();
435 }