tests: unittest: Add new test for hal_common_get_backend_with_library_name 00/276600/3 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/20221110.060157 accepted/tizen/7.0/unified/hotfix/20221116.110326 accepted/tizen/unified/20220715.141321 submit/tizen/20220714.022505 submit/tizen/20220715.020027 tizen_7.0_m2_release
authorChanwoo Choi <cw00.choi@samsung.com>
Tue, 21 Jun 2022 15:58:01 +0000 (00:58 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Wed, 22 Jun 2022 03:15:02 +0000 (12:15 +0900)
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 <cw00.choi@samsung.com>
tests/unittest/test-hal-api-common.cc

index 1fc6486..9723266 100644 (file)
@@ -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<struct hal_abi_version_match> 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);
+}