tests: unittest: Add new test for hal_common_get_backend and put_backend function 67/276567/4
authorChanwoo Choi <cw00.choi@samsung.com>
Thu, 16 Jun 2022 03:48:35 +0000 (12:48 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Wed, 22 Jun 2022 03:14:55 +0000 (12:14 +0900)
hal_common_get_backend and hal_common_put_backend functions are very
important because they are in charge of loading/unloading the hal
backend library for all hal backends and also verify the validation checking
of the loaded hal backend library. When executing hal_common_get_backend and
hal_common_put_backend, there are very complex validation sequence.

It means that have to verify the internal logic of both
hal_common_get_backend and hal_common_put_backend at the implementation
step in order to catch the error.

So that add new test for hal_common_get_backend and
hal_common_put_backend functions.

Change-Id: I8d42e9327248c283d8f01fc8b5f5926e0d371ba5
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
tests/unittest/test-hal-api-common.cc

index 8b1e08ae390cd4514d0b7a08ba71c2e7193de003..1fc648664b7ac4d50b87ae8ae54a40c1c239469d 100644 (file)
@@ -607,3 +607,32 @@ TEST_P(HalInfoMatchedTest, test_check_backend_abi_version) {
        }
        _hal_api_conf_exit();
 }
+
+TEST_P(HalInfoMatchedTest, test_hal_common_get_backend_valid) {
+       auto info = GetParam();
+
+       struct _hal_backend_module_data {
+               void *data;
+       } *backend_module_data;
+
+       int ret = hal_common_get_backend(info.module_, (void **)&backend_module_data);
+       if (strlen(info.library_name_) == 0)
+               EXPECT_NE(ret, TIZEN_ERROR_NONE);
+       else
+               EXPECT_EQ(ret, TIZEN_ERROR_NONE);
+
+       ret = hal_common_put_backend(info.module_, backend_module_data);
+       EXPECT_EQ(ret, TIZEN_ERROR_NONE);
+}
+
+TEST(HalInfoMatchedTest, test_hal_common_get_backend_invalid_module_id) {
+       struct _hal_backend_module_data {
+               void *data;
+       } *backend_module_data;
+
+       int ret = hal_common_get_backend(HAL_MODULE_UNKNOWN, (void **)&backend_module_data);
+       EXPECT_NE(ret, TIZEN_ERROR_NONE);
+
+       ret = hal_common_get_backend(HAL_MODULE_END, (void **)&backend_module_data);
+       EXPECT_NE(ret, TIZEN_ERROR_NONE);
+}