Fix unit tests 20/279520/1
authorHwankyu Jhun <h.jhun@samsung.com>
Thu, 11 Aug 2022 01:20:22 +0000 (10:20 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Thu, 11 Aug 2022 01:20:22 +0000 (10:20 +0900)
The aul_comp_context and aul_comp_info APIs were refactored using C++ language.
When calling the aul_comp_context_destroy() and the aul_comp_info_destroy(),
the free() is not called to release.
This patch adds fake functions to avoid crash issues.

Change-Id: Id4aed990f86c2e7f9f61e9e056c77390ccfda4d4
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
mock/aul_mock.cc
mock/aul_mock.h
test/unit_tests/test_component_context.cc
test/unit_tests/test_component_info.cc

index b8c9c5b46f5eeba6e53ff7bfc49ce52d95718f45..cf43b325bf508700c4a18c59b8d36f4b38770a7b 100644 (file)
 #include "test_fixture.h"
 
 extern "C" int aul_comp_context_foreach_comp_context(
-    aul_comp_context_cb callback, void *user_data)
-{
+    aul_comp_context_cb callback, void* user_data) {
   return MOCK_HOOK_P2(AulMock, aul_comp_context_foreach_comp_context,
         callback, user_data);
 }
 
-extern "C" int aul_comp_context_create(const char *comp_id,
-    aul_comp_context_h *handle)
-{
+extern "C" int aul_comp_context_create(const char* comp_id,
+    aul_comp_context_h* handle) {
   return MOCK_HOOK_P2(AulMock, aul_comp_context_create, comp_id, handle);
 }
 
 extern "C" int aul_comp_context_is_running(aul_comp_context_h handle,
-    bool *running)
-{
+    bool* running) {
   return MOCK_HOOK_P2(AulMock, aul_comp_context_is_running, handle, running);
 }
 
-extern "C" int aul_comp_info_create(const char *comp_id,
-    aul_comp_info_h *handle)
-{
+extern "C" int aul_comp_info_create(const char* comp_id,
+    aul_comp_info_h* handle) {
   return MOCK_HOOK_P2(AulMock, aul_comp_info_create, comp_id, handle);
 }
 
-extern "C" int aul_comp_context_resume(aul_comp_context_h handle)
-{
+extern "C" int aul_comp_context_resume(aul_comp_context_h handle) {
   return MOCK_HOOK_P1(AulMock, aul_comp_context_resume, handle);
 }
 
-extern "C" int aul_comp_context_terminate_bg_comp(aul_comp_context_h handle)
-{
+extern "C" int aul_comp_context_terminate_bg_comp(aul_comp_context_h handle) {
   return MOCK_HOOK_P1(AulMock, aul_comp_context_terminate_bg_comp, handle);
 }
 
 extern "C" int aul_comp_context_get_app_id(aul_comp_context_h context,
-    const char **app_id)
-{
+    const char** app_id) {
   return MOCK_HOOK_P2(AulMock, aul_comp_context_get_app_id, context, app_id);
 }
 
 extern "C" int aul_comp_context_get_comp_id(aul_comp_context_h context,
-    const char **comp_id)
-{
+    const char** comp_id) {
   return MOCK_HOOK_P2(AulMock, aul_comp_context_get_comp_id, context, comp_id);
 }
 
 extern "C" int aul_comp_context_get_instance_id(aul_comp_context_h context,
-    const char **instance_id)
-{
+    const char** instance_id) {
   return MOCK_HOOK_P2(AulMock, aul_comp_context_get_instance_id,
       context, instance_id);
 }
 
 extern "C" int aul_comp_context_get_status(aul_comp_context_h context,
-    int *status)
-{
+    int* status) {
   return MOCK_HOOK_P2(AulMock, aul_comp_context_get_status,
       context, status);
 }
 
 extern "C" int aul_comp_context_is_sub_comp(aul_comp_context_h context,
-    bool *is_sub_comp)
-{
+    bool* is_sub_comp) {
   return MOCK_HOOK_P2(AulMock, aul_comp_context_is_sub_comp,
       context, is_sub_comp);
 }
 
 extern "C" int aul_comp_context_clone(aul_comp_context_h handle,
-    aul_comp_context_h *clone)
-{
+    aul_comp_context_h* clone) {
   return MOCK_HOOK_P2(AulMock, aul_comp_context_clone, handle, clone);
 }
 
 extern "C" int aul_comp_info_get_app_id(aul_comp_info_h handle,
-    const char **app_id)
-{
+    const char** app_id) {
   return MOCK_HOOK_P2(AulMock, aul_comp_info_get_app_id, handle, app_id);
 }
 
-extern "C" int aul_comp_info_get_comp_id(
-    aul_comp_info_h handle, const char **comp_id)
-{
+extern "C" int aul_comp_info_get_comp_id(aul_comp_info_h handle,
+    const char** comp_id) {
   return MOCK_HOOK_P2(AulMock, aul_comp_info_get_comp_id, handle, comp_id);
 }
 
-extern "C" int aul_comp_info_get_type(aul_comp_info_h handle, const char **type)
-{
+extern "C" int aul_comp_info_get_type(aul_comp_info_h handle,
+    const char** type) {
   return MOCK_HOOK_P2(AulMock, aul_comp_info_get_type, handle, type);
 }
 
 extern "C" int aul_comp_info_is_icon_display(aul_comp_info_h handle,
-    bool *icon_display)
-{
-  return MOCK_HOOK_P2(AulMock,
-      aul_comp_info_is_icon_display, handle, icon_display);
+    bool* icon_display) {
+  return MOCK_HOOK_P2(AulMock, aul_comp_info_is_icon_display, handle,
+      icon_display);
 }
 
 extern "C" int aul_comp_info_is_taskmanage(aul_comp_info_h handle,
-    bool *taskmanage)
-{
+    bool* taskmanage) {
   return MOCK_HOOK_P2(AulMock, aul_comp_info_is_taskmanage, handle, taskmanage);
 }
 
-extern "C" int aul_comp_info_get_icon(aul_comp_info_h handle, const char **icon)
-{
+extern "C" int aul_comp_info_get_icon(aul_comp_info_h handle,
+    const char** icon) {
   return MOCK_HOOK_P2(AulMock, aul_comp_info_get_icon, handle, icon);
 }
 
 extern "C" int aul_comp_info_get_label(aul_comp_info_h handle,
-    const char **label)
-{
+    const char** label) {
   return MOCK_HOOK_P2(AulMock, aul_comp_info_get_label, handle, label);
 }
 
 extern "C" int aul_comp_info_get_localed_label(aul_comp_info_h handle,
-    const char *locale, const char **label)
-{
+    const char* locale, const char** label) {
   return MOCK_HOOK_P3(AulMock, aul_comp_info_get_localed_label,
       handle, locale, label);
 }
 
 extern "C" int aul_comp_info_clone(aul_comp_info_h handle,
-    aul_comp_info_h *clone)
-{
+    aul_comp_info_h* clone) {
   return MOCK_HOOK_P2(AulMock, aul_comp_info_clone, handle, clone);
 }
 
-extern "C" int aul_comp_context_pause(aul_comp_context_h handle)
-{
+extern "C" int aul_comp_context_pause(aul_comp_context_h handle) {
   return MOCK_HOOK_P1(AulMock, aul_comp_context_pause, handle);
 }
 
-extern "C" int aul_comp_context_terminate(aul_comp_context_h handle)
-{
+extern "C" int aul_comp_context_terminate(aul_comp_context_h handle) {
   return MOCK_HOOK_P1(AulMock, aul_comp_context_terminate, handle);
 }
+
+extern "C" int aul_comp_context_destroy(aul_comp_context_h handle) {
+  return MOCK_HOOK_P1(AulMock, aul_comp_context_destroy, handle);
+}
+
+extern "C" int aul_comp_info_destroy(aul_comp_info_h handle) {
+  return MOCK_HOOK_P1(AulMock, aul_comp_info_destroy, handle);
+}
index a47b1a4788de82d6860df626f82d3174747e8dc2..9df1b45b1cbffa8d3413a921bfefdfc84e5a52cd 100644 (file)
@@ -72,6 +72,10 @@ class AulMock : public virtual ModuleMock {
       int (aul_comp_context_h));
   MOCK_METHOD1(aul_comp_context_terminate,
       int (aul_comp_context_h));
+  MOCK_METHOD1(aul_comp_context_destroy,
+      int (aul_comp_context_h));
+  MOCK_METHOD1(aul_comp_info_destroy,
+      int (aul_comp_info_h));
 };
 
 #endif  // UNIT_TESTS_MOCK_AUL_MOCK_H_
index 6685109e5675751c0524ba368d92a8311f3486aa..88019dba05a2c67b7d1a468e1616703b8a9915f0 100644 (file)
@@ -61,6 +61,14 @@ static int __fake_aul_comp_context_create(const char* comp_id,
   return AUL_R_OK;
 }
 
+static int __fake_aul_comp_context_destroy(aul_comp_context_h handle) {
+  if (handle == nullptr)
+    return AUL_R_EINVAL;
+
+  free(handle);
+  return AUL_R_OK;
+}
+
 static int __fake_aul_comp_context_get_app_id(aul_comp_context_h handle,
     const char** app_id) {
   *app_id = "org.tizen.helloworld";
@@ -121,6 +129,10 @@ class ComponentContextTest : public TestFixture {
 
   virtual void TearDown() {
     if (handle_ != nullptr) {
+      EXPECT_CALL(GetMock<AulMock>(),
+          aul_comp_context_destroy(_)).
+              WillOnce(Invoke(__fake_aul_comp_context_destroy));
+
       component_context_destroy(handle_);
       handle_ = nullptr;
     }
@@ -139,6 +151,10 @@ class ComponentContextTest : public TestFixture {
 };
 
 TEST_F(ComponentContextTest, component_context_destroy_Positive) {
+  EXPECT_CALL(GetMock<AulMock>(),
+      aul_comp_context_destroy(_)).
+          WillOnce(Invoke(__fake_aul_comp_context_destroy));
+
   component_context_h handle = GetHandle();
   int ret = component_context_destroy(handle);
   EXPECT_EQ(ret, COMPONENT_MANAGER_ERROR_NONE);
index 4afdc35a65312cf5116d1c9220f7281eac97ea22..137a42b12b364d9949523e06621334bf9c57b6c3 100644 (file)
@@ -65,6 +65,14 @@ static int __fake_aul_comp_info_create(const char* comp_id,
   return AUL_R_OK;
 }
 
+static int __fake_aul_comp_info_destroy(aul_comp_info_h handle) {
+  if (handle == nullptr)
+    return AUL_R_EINVAL;
+
+  free(handle);
+  return AUL_R_OK;
+}
+
 static int __fake_aul_comp_info_get_app_id(aul_comp_info_h handle,
     const char** appid) {
   *appid = "org.tizen.helloworld";
@@ -138,6 +146,10 @@ class ComponentInfoTest : public TestFixture {
 
   virtual void TearDown() {
     if (handle_ != nullptr) {
+      EXPECT_CALL(GetMock<AulMock>(),
+          aul_comp_info_destroy(_)).
+              WillOnce(Invoke(__fake_aul_comp_info_destroy));
+
       component_info_destroy(handle_);
       handle_ = nullptr;
     }
@@ -176,6 +188,10 @@ TEST_F(ComponentInfoTest, component_info_create_Negative) {
 TEST_F(ComponentInfoTest, component_info_destroy_Positive) {
   component_info_h handle = GetHandle();
 
+  EXPECT_CALL(GetMock<AulMock>(),
+      aul_comp_info_destroy(_)).
+          WillOnce(Invoke(__fake_aul_comp_info_destroy));
+
   int ret = component_info_destroy(handle);
   EXPECT_EQ(ret, COMPONENT_MANAGER_ERROR_NONE);
   SetHandle(nullptr);