Change the path of the file used in the unit test 65/296365/2
authorilho kim <ilho159.kim@samsung.com>
Wed, 26 Jul 2023 06:51:57 +0000 (15:51 +0900)
committerilho kim <ilho159.kim@samsung.com>
Wed, 26 Jul 2023 06:57:29 +0000 (15:57 +0900)
Depending on the path through which the unit test is executed
the path of the unintended file can be used
so the relative path of the directory
where the unit test executable is located is obtained and used

Change-Id: I24d351b2dac7e14a456ee1684bf64bb1716ca207
Signed-off-by: ilho kim <ilho159.kim@samsung.com>
CMakeLists.txt
packaging/unified-backend.spec
test/unit_tests/CMakeLists.txt
test/unit_tests/test_unified_installer_factory.cc

index 91e800dbf5079f280605353df17d6cba295b51d4..d75d385a5775ee3f27e3f4ac918ca6b54de3cc62 100644 (file)
@@ -13,12 +13,12 @@ ENDIF(NOT CMAKE_BUILD_TYPE)
 # Compiler flags
 SET(EXTRA_FLAGS "-Wall -Wextra -Werror=shadow")
 SET(CMAKE_C_FLAGS_PROFILING    "-O2 ${EXTRA_FLAGS}")
-SET(CMAKE_CXX_FLAGS_PROFILING  "-O2 -std=c++14 ${EXTRA_FLAGS}")
+SET(CMAKE_CXX_FLAGS_PROFILING  "-O2 -std=c++17 ${EXTRA_FLAGS}")
 SET(CMAKE_C_FLAGS_DEBUG        "-O0 -g ${EXTRA_FLAGS}")
-SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++14 -g ${EXTRA_FLAGS}")
+SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++17 -g ${EXTRA_FLAGS}")
 SET(CMAKE_C_FLAGS_RELEASE      "-O2 -g ${EXTRA_FLAGS}")
-SET(CMAKE_CXX_FLAGS_RELEASE    "-O2 -std=c++14 -g ${EXTRA_FLAGS}")
-SET(CMAKE_CXX_FLAGS_CCOV       "-O0 -std=c++14 -g --coverage ${EXTRA_FLAGS}")
+SET(CMAKE_CXX_FLAGS_RELEASE    "-O2 -std=c++17 -g ${EXTRA_FLAGS}")
+SET(CMAKE_CXX_FLAGS_CCOV       "-O0 -std=c++17 -g --coverage ${EXTRA_FLAGS}")
 
 # Linker flags
 SET(EXTRA_LINKER_FLAGS "-Wl,--as-needed")
index 35f60319d15eb3d5dc15f39dc1b8f44d7aabbbdd..2361283e3da538bb70ec0a50a391becda1068bb6 100644 (file)
@@ -173,4 +173,5 @@ Simple string key-val dictionary ADT gcov objects
 
 %files unittests
 %{_bindir}/unified-installer-ut/unified-installer-unit-test
+%{_bindir}/unified-installer-ut/test_samples/*
 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
index 0c34181f86c55b0758f5105953b973a6b829d85e..383950836e5e5d0297100e457166f4cb192c9332 100644 (file)
@@ -25,6 +25,7 @@ TARGET_LINK_LIBRARIES(${TARGET_UNIFIED_INSTALLER_UNIT_TEST} PRIVATE ${TARGET_LIB
 SET_TARGET_PROPERTIES(${TARGET_UNIFIED_INSTALLER_UNIT_TEST} PROPERTIES COMPILE_FLAGS "-fPIE")
 SET_TARGET_PROPERTIES(${TARGET_UNIFIED_INSTALLER_UNIT_TEST} PROPERTIES LINK_FLAGS "-pie")
 INSTALL(TARGETS ${TARGET_UNIFIED_INSTALLER_UNIT_TEST} DESTINATION ${BINDIR}/${DESTINATION_DIR})
+INSTALL(DIRECTORY test_samples/ DESTINATION ${BINDIR}/${DESTINATION_DIR}/test_samples)
 
 ADD_TEST(
   NAME ${TARGET_UNIFIED_INSTALLER_UNIT_TEST}
index 61b341113690ea09e34ff5614eb9a4458c10fa7f..110fe55e5f3628fb2ba3020216d75704b01fcfbb 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <pkgmgrinfo_basic.h>
 
+#include <filesystem>
 #include <gtest/gtest.h>
 #include <iostream>
 #include <memory>
@@ -57,12 +58,30 @@ class Mocks : public ::testing::NiceMock<GumMock>,
 
 class UnifiedInstallerFactoryTest : public TestFixture {
  public:
-  UnifiedInstallerFactoryTest() : TestFixture(std::make_unique<Mocks>()) {}
+  UnifiedInstallerFactoryTest() : TestFixture(std::make_unique<Mocks>()) {
+    char buffer[PATH_MAX];
+    ssize_t len = readlink("/proc/self/exe", buffer, sizeof(buffer) - 1);
+    EXPECT_NE(len, -1);
+    if (len != -1) {
+      buffer[len] = '\0';
+      std::filesystem::path p(buffer);
+      executable_dir_ = p.parent_path().string();
+    } else {
+      executable_dir_ = "";
+    }
+  }
   virtual ~UnifiedInstallerFactoryTest() {}
 
   virtual void SetUp() {}
 
   virtual void TestDown() {}
+
+  const std::string& ExecutableDir() {
+    return executable_dir_;
+  }
+
+ private:
+  std::string executable_dir_;
 };
 
 class TestPkgmgrInstaller : public common_installer::PkgmgrInstallerInterface {
@@ -149,9 +168,11 @@ TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromPkgID) {
 }
 
 TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromFilename) {
-  std::vector<std::string> arguments =
-      {"unified-backend", "-b", "test_samples/tpk-recovery-123456",
-      "test_samples/wgt-recovery-123456"};
+  std::vector<std::string> arguments = {
+      "unified-backend", "-b",
+      ExecutableDir() + "/test_samples/tpk-recovery-123456",
+      ExecutableDir() + "/test_samples/wgt-recovery-123456"
+  };
   std::vector<char*> argv;
   for (const auto& arg : arguments)
     argv.push_back(const_cast<char*>(
@@ -166,14 +187,14 @@ TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromFilename) {
 
   EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
       pkgmgrinfo_pkginfo_get_usr_all_pkginfo(
-          StrEq("test_samples/tpk-recovery-123456"), _, _)).
+          StrEq(ExecutableDir() + "/test_samples/tpk-recovery-123456"), _, _)).
           WillOnce(DoAll(
                   SetArgPointee<2>(
                       reinterpret_cast<pkgmgrinfo_pkginfo_h>(handle1)),
                   Return(PMINFO_R_OK)));
   EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
       pkgmgrinfo_pkginfo_get_usr_all_pkginfo(
-          StrEq("test_samples/wgt-recovery-123456"), _, _)).
+          StrEq(ExecutableDir() + "/test_samples/wgt-recovery-123456"), _, _)).
           WillOnce(DoAll(
                   SetArgPointee<2>(
                       reinterpret_cast<pkgmgrinfo_pkginfo_h>(handle2)),
@@ -206,8 +227,10 @@ TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromFilename) {
 }
 
 TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromXml) {
-  std::vector<std::string> arguments =
-      {"unified-backend", "-y", "test_samples/test-resource-pkg"};
+  std::vector<std::string> arguments = {
+      "unified-backend", "-y",
+      ExecutableDir() + "/test_samples/test-resource-pkg"
+  };
   std::vector<char*> argv;
   for (const auto& arg : arguments)
     argv.push_back(const_cast<char*>(
@@ -222,7 +245,7 @@ TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromXml) {
 
   EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
       pkgmgrinfo_pkginfo_get_usr_all_pkginfo(
-          StrEq("test_samples/test-resource-pkg"), _, _)).
+          StrEq(ExecutableDir() + "/test_samples/test-resource-pkg"), _, _)).
           WillOnce(DoAll(
                   SetArgPointee<2>(
                       reinterpret_cast<pkgmgrinfo_pkginfo_h>(handle1)),
@@ -230,7 +253,7 @@ TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromXml) {
 
   EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
       getUserManifestPath(_, _)).
-          WillRepeatedly(DoAll(Return(".")));
+          WillRepeatedly(DoAll(Return("")));
 
   TestPkgmgrInstaller installer;
   EXPECT_CALL(GetMock<GumMock>(),
@@ -259,9 +282,11 @@ TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromXml) {
 }
 
 TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_WrongRecoveryFile) {
-  std::vector<std::string> arguments =
-      {"unified-backend", "-b", "test_samples/kkk-recovery-123456",
-      "test_samples/tgt-recovery-123456"};
+  std::vector<std::string> arguments = {
+      "unified-backend", "-b",
+      ExecutableDir() + "/test_samples/kkk-recovery-123456",
+      ExecutableDir() + "/test_samples/tgt-recovery-123456"
+  };
   std::vector<char*> argv;
   for (const auto& arg : arguments)
     argv.push_back(const_cast<char*>(
@@ -276,14 +301,14 @@ TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_WrongRecoveryFile) {
 
   EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
       pkgmgrinfo_pkginfo_get_usr_all_pkginfo(
-          StrEq("test_samples/kkk-recovery-123456"), _, _)).
+          StrEq(ExecutableDir() + "/test_samples/kkk-recovery-123456"), _, _)).
           WillOnce(DoAll(
                   SetArgPointee<2>(
                       reinterpret_cast<pkgmgrinfo_pkginfo_h>(handle1)),
                   Return(PMINFO_R_OK)));
   EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
       pkgmgrinfo_pkginfo_get_usr_all_pkginfo(
-          StrEq("test_samples/tgt-recovery-123456"), _, _)).
+          StrEq(ExecutableDir() + "/test_samples/tgt-recovery-123456"), _, _)).
           WillOnce(DoAll(
                   SetArgPointee<2>(
                       reinterpret_cast<pkgmgrinfo_pkginfo_h>(handle2)),
@@ -320,9 +345,11 @@ TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_WrongRecoveryFile) {
 }
 
 TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromPkgFile) {
-  std::vector<std::string> arguments =
-      {"unified-backend", "-i", "test_samples/test-tpk-pkg.tpk",
-      "test_samples/test-wgt-pkg.wgt"};
+  std::vector<std::string> arguments = {
+      "unified-backend", "-i",
+      ExecutableDir() + "/test_samples/test-tpk-pkg.tpk",
+      ExecutableDir() + "/test_samples/test-wgt-pkg.wgt"
+  };
   std::vector<char*> argv;
   for (const auto& arg : arguments)
     argv.push_back(const_cast<char*>(
@@ -339,14 +366,14 @@ TEST_F(UnifiedInstallerFactoryTest, CreateInstaller_GetPkgTypeFromPkgFile) {
 
   EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
       pkgmgrinfo_pkginfo_get_usr_all_pkginfo(
-          StrEq("test_samples/test-tpk-pkg.tpk"), _, _)).
+          StrEq(ExecutableDir() + "/test_samples/test-tpk-pkg.tpk"), _, _)).
           WillOnce(DoAll(
                   SetArgPointee<2>(
                       reinterpret_cast<pkgmgrinfo_pkginfo_h>(handle1)),
                   Return(PMINFO_R_OK)));
   EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
       pkgmgrinfo_pkginfo_get_usr_all_pkginfo(
-          StrEq("test_samples/test-wgt-pkg.wgt"), _, _)).
+          StrEq(ExecutableDir() + "/test_samples/test-wgt-pkg.wgt"), _, _)).
           WillOnce(DoAll(
                   SetArgPointee<2>(
                       reinterpret_cast<pkgmgrinfo_pkginfo_h>(handle2)),