From 8eb86b233dff2c718bda0cbc20a3a2a8fa3dae61 Mon Sep 17 00:00:00 2001 From: Chanwoo Choi Date: Wed, 22 Jun 2022 00:58:01 +0900 Subject: [PATCH] tests: unittest: Add new test for hal_common_get_backend_with_library_name Basically, the hal backend library name of each module is already decied such as 'libhal-backend-[module name].so'. But, some module requires the hal backend library loading way with their own library name like 'libhal-backend-[module name]-lidar.so'. When loading the their own library name, hal_common_get_backend_with_library_name and hal_common_put_backend_with_library_name are used. So that add new for hal_common_get/put_backend_with_library_name and add 'backend_module_name' attribute to class HalInfo because 'backend_module_name' is required to check the hal backend name as I mentioned above. Change-Id: Idbd5ae4f23714a4efdb857d2a1ed0885a927e887 Signed-off-by: Chanwoo Choi --- tests/unittest/test-hal-api-common.cc | 107 +++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) diff --git a/tests/unittest/test-hal-api-common.cc b/tests/unittest/test-hal-api-common.cc index 1fc6486..9723266 100644 --- a/tests/unittest/test-hal-api-common.cc +++ b/tests/unittest/test-hal-api-common.cc @@ -80,6 +80,7 @@ class HalInfo { enum hal_group group_; enum hal_license license_; const char *module_name_; + const char *backend_module_name_; const char *library_name_; const char *library_name_64bit_; const char *symbol_name_; @@ -89,12 +90,15 @@ class HalInfo { enum hal_group group, enum hal_license license, const char *module_name, + const char *backend_module_name, const char *library_name, const char *library_name_64bit, const char *symbol_name, vector versions) : module_(module), group_(group), license_(license), - module_name_(module_name), library_name_(library_name), + module_name_(module_name), + backend_module_name_(backend_module_name), + library_name_(library_name), library_name_64bit_(library_name_64bit), symbol_name_(symbol_name), versions_(versions) {} }; @@ -108,6 +112,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT, "HAL_MODULE_TBM", + "tbm", "/hal/lib/libhal-backend-tbm.so", "/hal/lib64/libhal-backend-tbm.so", "hal_backend_tbm_data", @@ -121,6 +126,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT, "HAL_MODULE_TDM", + "tdm", "/hal/lib/libhal-backend-tdm.so", "/hal/lib64/libhal-backend-tdm.so", "hal_backend_tdm_data", @@ -137,6 +143,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {} ), @@ -147,6 +154,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {} ), @@ -154,6 +162,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_AUDIO", + "audio", "/hal/lib/libhal-backend-audio.so", "/hal/lib64/libhal-backend-audio.so", "hal_backend_audio_data", @@ -167,6 +176,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_CAMERA", + "camera", "/hal/lib/libhal-backend-camera.so", "/hal/lib64/libhal-backend-camera.so", "hal_backend_camera_data", @@ -180,6 +190,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_RADIO", + "radio", "/hal/lib/libhal-backend-radio.so", "/hal/lib64/libhal-backend-radio.so", "hal_backend_radio_data", @@ -196,6 +207,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {} ), @@ -206,6 +218,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {} ), @@ -216,6 +229,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {} ), @@ -223,6 +237,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_BLUETOOTH", + "bluetooth", "/hal/lib/libhal-backend-bluetooth.so", "/hal/lib64/libhal-backend-bluetooth.so", "hal_backend_bluetooth_data", @@ -236,6 +251,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_WIFI", + "wifi", "/hal/lib/libhal-backend-wifi.so", "/hal/lib64/libhal-backend-wifi.so", "hal_backend_wifi_data", @@ -252,6 +268,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {} ), @@ -259,6 +276,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_NFC", + "nfc", "/hal/lib/libhal-backend-nfc.so", "/hal/lib64/libhal-backend-nfc.so", "hal_backend_nfc_data", @@ -272,6 +290,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_ZIGBEE", + "zigbee", "/hal/lib/libhal-backend-zigbee.so", "/hal/lib64/libhal-backend-zigbee.so", "hal_backend_zigbee_data", @@ -285,6 +304,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_UWB", + "uwb", "/hal/lib/libhal-backend-uwb.so", "/hal/lib64/libhal-backend-uwb.so", "hal_backend_uwb_data", @@ -301,6 +321,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {} ), @@ -311,6 +332,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {} ), @@ -318,6 +340,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_LOCATION, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_LOCATION", + "location", "/hal/lib/libhal-backend-location.so", "/hal/lib64/libhal-backend-location.so", "hal_backend_location_data", @@ -334,6 +357,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {} ), @@ -341,6 +365,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_POWER", + "power", "/hal/lib/libhal-backend-power.so", "/hal/lib64/libhal-backend-power.so", "hal_backend_power_data", @@ -354,6 +379,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_SENSOR", + "sensor", "/hal/lib/libhal-backend-sensor.so", "/hal/lib64/libhal-backend-sensor.so", "hal_backend_sensor_data", @@ -370,12 +396,14 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, "", "", "", + "", {}), HalInfo(HAL_MODULE_DEVICE_BATTERY, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_BATTERY", + "device-battery", "/hal/lib/libhal-backend-device-battery.so", "/hal/lib64/libhal-backend-device-battery.so", "hal_backend_device_battery_data", @@ -389,6 +417,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_BEZEL", + "device-bezel", "/hal/lib/libhal-backend-device-bezel.so", "/hal/lib64/libhal-backend-device-bezel.so", "hal_backend_device_bezel_data", @@ -402,6 +431,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_DISPLAY", + "device-display", "/hal/lib/libhal-backend-device-display.so", "/hal/lib64/libhal-backend-device-display.so", "hal_backend_device_display_data", @@ -415,6 +445,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_IR", + "device-ir", "/hal/lib/libhal-backend-device-ir.so", "/hal/lib64/libhal-backend-device-ir.so", "hal_backend_device_ir_data", @@ -428,6 +459,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_TOUCHSCREEN", + "device-touchscreen", "/hal/lib/libhal-backend-device-touchscreen.so", "/hal/lib64/libhal-backend-device-touchscreen.so", "hal_backend_device_touchscreen_data", @@ -441,6 +473,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_LED", + "device-led", "/hal/lib/libhal-backend-device-led.so", "/hal/lib64/libhal-backend-device-led.so", "hal_backend_device_led_data", @@ -454,6 +487,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_BOARD", + "device-board", "/hal/lib/libhal-backend-device-board.so", "/hal/lib64/libhal-backend-device-board.so", "hal_backend_device_board_data", @@ -467,6 +501,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_EXTERNAL_CONNECTION", + "device-external-connection", "/hal/lib/libhal-backend-device-external-connection.so", "/hal/lib64/libhal-backend-device-external-connection.so", "hal_backend_device_external_connection_data", @@ -480,6 +515,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_THERMAL", + "device-thermal", "/hal/lib/libhal-backend-device-thermal.so", "/hal/lib64/libhal-backend-device-thermal.so", "hal_backend_device_thermal_data", @@ -493,6 +529,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_USB_GADGET", + "device-usb-gadget", "/hal/lib/libhal-backend-device-usb-gadget.so", "/hal/lib64/libhal-backend-device-usb-gadget.so", "hal_backend_device_usb_gadget_data", @@ -506,6 +543,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_HAPTIC", + "device-haptic", "/hal/lib/libhal-backend-device-haptic.so", "/hal/lib64/libhal-backend-device-haptic.so", "hal_backend_device_haptic_data", @@ -519,6 +557,7 @@ INSTANTIATE_TEST_CASE_P(HalApiCommonTest, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0, "HAL_MODULE_DEVICE_MEMORY", + "device-memory", "/hal/lib/libhal-backend-device-memory.so", "/hal/lib64/libhal-backend-device-memory.so", "hal_backend_device_memory_data", @@ -636,3 +675,69 @@ TEST(HalInfoMatchedTest, test_hal_common_get_backend_invalid_module_id) { ret = hal_common_get_backend(HAL_MODULE_END, (void **)&backend_module_data); EXPECT_NE(ret, TIZEN_ERROR_NONE); } + +TEST_P(HalInfoMatchedTest, test_hal_common_get_backend_with_library_name_valid) { + auto info = GetParam(); + char *library_name = g_strdup_printf("libhal-backend-%s-user-specific.so", + info.backend_module_name_); + struct _hal_backend_module_data { + void *data; + } *backend_module_data; + + int ret = hal_common_get_backend_with_library_name(info.module_, + (void **)&backend_module_data, + library_name); + if (strlen(info.library_name_) == 0) + EXPECT_NE(ret, TIZEN_ERROR_NONE); + else + EXPECT_EQ(ret, TIZEN_ERROR_NONE); + + ret = hal_common_put_backend_with_library_name(info.module_, + backend_module_data, + library_name); + if (strlen(info.library_name_) == 0) + EXPECT_NE(ret, TIZEN_ERROR_NONE); + else + EXPECT_EQ(ret, TIZEN_ERROR_NONE); + + g_free(library_name); +} + +TEST_P(HalInfoMatchedTest, test_hal_common_get_backend_with_library_name_invalid_library_name) { + auto info = GetParam(); + char *library_name = g_strdup_printf("libhal-backend-unknown-module.so"); + struct _hal_backend_module_data { + void *data; + } *backend_module_data; + + int ret = hal_common_get_backend_with_library_name(info.module_, + (void **)&backend_module_data, + library_name); + EXPECT_NE(ret, TIZEN_ERROR_NONE); + + ret = hal_common_put_backend_with_library_name(info.module_, + (void **)&backend_module_data, + library_name); + EXPECT_NE(ret, TIZEN_ERROR_NONE); + + g_free(library_name); +} + +TEST(HalInfoMatchedTest, test_hal_common_get_backend_with_library_name_invalid_module_id) { + char *library_name = g_strdup_printf("libhal-backend-unknown-module.so"); + struct _hal_backend_module_data { + void *data; + } *backend_module_data; + + int ret = hal_common_get_backend_with_library_name(HAL_MODULE_UNKNOWN, + (void **)&backend_module_data, + library_name); + EXPECT_NE(ret, TIZEN_ERROR_NONE); + + ret = hal_common_put_backend_with_library_name(HAL_MODULE_END, + (void **)&backend_module_data, + library_name); + EXPECT_NE(ret, TIZEN_ERROR_NONE); + + g_free(library_name); +} -- 2.7.4