Fix build issue for unittest 02/308802/1
authorInkyun Kil <inkyun.kil@samsung.com>
Mon, 1 Apr 2024 07:55:45 +0000 (16:55 +0900)
committerInkyun Kil <inkyun.kil@samsung.com>
Mon, 1 Apr 2024 08:25:13 +0000 (17:25 +0900)
- Exact solution not found for mocking 'cynara_initialize' and
'cynara_finish'

- Issues arize when creating them.
  -- terminate called after throwing an instance of 'std::invalid_argument'
   what():  The test does not provide mock of "10CynaraMock"

Change-Id: I5ff1311bc22bf57c915bc6b3bb5b405147219947
Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
packaging/capi-appfw-app-manager.spec
tests/app-manager_unittests/app_info_tests.cc
tests/app-manager_unittests/mock/cynara_mock.cc
tests/app-manager_unittests/mock/cynara_mock.hh

index bbfdb46..849d208 100644 (file)
@@ -70,7 +70,7 @@ MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
 
 %check
 export LD_LIBRARY_PATH="../../src"
-#ctest --verbose %{?_smp_mflags}
+ctest --verbose %{?_smp_mflags}
 %if 0%{?gcov:1}
 lcov -c --ignore-errors mismatch,graph,unused --no-external -q -d . -o app-manager.info
 genhtml app-manager.info -o app-manager.out
index 1237344..191a93f 100644 (file)
@@ -61,6 +61,15 @@ class Mocks : public ::testing::NiceMock<PkgmgrInfoMock>,
               public ::testing::NiceMock<CynaraMock>,
               public ::testing::NiceMock<GlibcMock> {};
 
+extern "C" int cynara_initialize(cynara** pp_cynara,
+                                 const cynara_configuration* p_conf) {
+  return CYNARA_API_SUCCESS;
+}
+
+extern "C" int cynara_finish(cynara* p_cynara) {
+  return CYNARA_API_SUCCESS;
+}
+
 int fake_aul_app_get_appid_bypid(int pid, char* appid, int len) {
   snprintf(appid, len, "%s", kAppId);
   return AUL_R_OK;
@@ -623,20 +632,12 @@ TEST_F(AppInfoTest, app_info_clone_N) {
 }
 
 TEST_F(AppInfoTest, app_info_foreach_category_P) {
-  EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
-      .WillOnce(
-          Invoke([&](cynara** pp_cynara, const cynara_configuration* p_conf) {
-            *pp_cynara = reinterpret_cast<cynara*>(&dummy);
-            return CYNARA_API_SUCCESS;
-          }));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillOnce(Invoke(
           [&](cynara* p_cynara, const char* client, const char* client_session,
               const char* user, const char* privilege) {
         return CYNARA_API_ACCESS_ALLOWED;
       }));
-  EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
-      .WillOnce(Invoke([&](cynara* p_cynara) { return CYNARA_API_SUCCESS; }));
   EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
               pkgmgrinfo_appinfo_foreach_category(_, _, _))
       .WillOnce(Invoke([&](pkgmgrinfo_appinfo_h handle,
index 032aa5f..a7e3e02 100644 (file)
 #include "app-manager_unittests/mock/mock_hook.hh"
 #include "app-manager_unittests/mock/test_fixture.hh"
 
-extern "C" int cynara_initialize(cynara** pp_cynara,
-                                 const cynara_configuration* p_conf) {
-  return MOCK_HOOK_P2(CynaraMock, cynara_initialize, pp_cynara, p_conf);
-}
-
 extern "C" int cynara_check(cynara* p_cynara, const char* client,
                             const char* client_session, const char* user,
                             const char* privilege) {
   return MOCK_HOOK_P5(CynaraMock, cynara_check, p_cynara, client,
                       client_session, user, privilege);
 }
-
-extern "C" int cynara_finish(cynara* p_cynara) {
-  return MOCK_HOOK_P1(CynaraMock, cynara_finish, p_cynara);
-}
index fa9883a..ebf6f0f 100644 (file)
@@ -27,10 +27,8 @@ class CynaraMock : public virtual ModuleMock {
  public:
   virtual ~CynaraMock() {}
 
-  MOCK_METHOD2(cynara_initialize, int(cynara**, const cynara_configuration*));
   MOCK_METHOD5(cynara_check, int(cynara*, const char*, const char*, const char*,
                                  const char*));
-  MOCK_METHOD1(cynara_finish, int(cynara*));
 };
 
 #endif  // APP_MANAGER_UNITTESTS_MOCK_CYNARA_MOCK_HH_