Merge SmokeTestHelperRunner into BackendInterface 65/283265/2
authorIlho Kim <ilho159.kim@samsung.com>
Thu, 13 Oct 2022 10:19:25 +0000 (19:19 +0900)
committerIlho Kim <ilho159.kim@samsung.com>
Fri, 21 Oct 2022 06:50:52 +0000 (15:50 +0900)
Change-Id: I1c3984c0d891d876980dc77f949939f57d42c40c
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
test/smoke_tests/common/smoke_utils.cc
test/smoke_tests/common/smoke_utils.h

index 21dac7f..b0004d1 100644 (file)
@@ -1001,7 +1001,7 @@ static boost::filesystem::path GetTrashPath(
   return path.string() + ".trash";
 }
 
-SmokeTestHelperRunner::Result SmokeTestHelperRunner::RunSubprocess(
+BackendInterface::SubProcessResult BackendInterface::RunSubprocess(
     std::vector<std::string> args) const {
   args.push_back("-remove_plugin_steps");
   ci::Subprocess backend = CreateSubprocess();
@@ -1009,14 +1009,14 @@ SmokeTestHelperRunner::Result SmokeTestHelperRunner::RunSubprocess(
   int status = backend.Wait();
   if (WIFEXITED(status)) {
     if (WEXITSTATUS(status) == 0)
-      return SmokeTestHelperRunner::Result::SUCCESS;
+      return BackendInterface::SubProcessResult::SUCCESS;
     else
-      return SmokeTestHelperRunner::Result::FAIL;
+      return BackendInterface::SubProcessResult::FAIL;
   }
-  return SmokeTestHelperRunner::Result::UnKnown;
+  return BackendInterface::SubProcessResult::UnKnown;
 }
 
-SmokeTestHelperRunner::Result SmokeTestHelperRunner::RunSubprocessAndKill(
+BackendInterface::SubProcessResult BackendInterface::RunSubprocessAndKill(
     std::vector<std::string> args, useconds_t delay) const {
   args.push_back("-remove_plugin_steps");
   ci::Subprocess backend = CreateSubprocess();
@@ -1026,134 +1026,141 @@ SmokeTestHelperRunner::Result SmokeTestHelperRunner::RunSubprocessAndKill(
   int status = backend.Wait();
   if (WIFEXITED(status)) {
     if (WEXITSTATUS(status) == 0)
-      return SmokeTestHelperRunner::Result::SUCCESS;
+      return BackendInterface::SubProcessResult::SUCCESS;
     else
-      return SmokeTestHelperRunner::Result::FAIL;
+      return BackendInterface::SubProcessResult::FAIL;
   } else {
     if (WTERMSIG(status) == SIGKILL)
-      return SmokeTestHelperRunner::Result::KILLED;
+      return BackendInterface::SubProcessResult::KILLED;
     else
-      return SmokeTestHelperRunner::Result::UnKnown;
+      return BackendInterface::SubProcessResult::UnKnown;
   }
 }
 
-SmokeTestHelperRunner::Result SmokeTestHelperRunner::InstallWithSubprocess(
-    const bf::path& path, uid_t uid) const {
+BackendInterface::SubProcessResult BackendInterface::InstallWithSubprocess(
+    const bf::path& path) const {
   std::vector<std::string> args =
-      { "-i", path.string(), "-u", std::to_string(uid) };
+      { "-i", path.string(), "-u", uid_str_ };
   return RunSubprocess(args);
 }
 
-SmokeTestHelperRunner::Result SmokeTestHelperRunner::MountInstallWithSubprocess(
-    const bf::path& path, uid_t uid) const {
+BackendInterface::SubProcessResult BackendInterface::MountInstallWithSubprocess(
+    const bf::path& path) const {
   std::vector<std::string> args =
-      { "-w", path.string(), "-u", std::to_string(uid) };
+      { "-w", path.string(), "-u", uid_str_ };
   return RunSubprocess(args);
 }
 
-SmokeTestHelperRunner::Result SmokeTestHelperRunner::RecoveryWithSubprocess(
-    const bf::path& path, uid_t uid) const {
+BackendInterface::SubProcessResult BackendInterface::RecoverWithSubprocess(
+    const bf::path& path) const {
   std::vector<std::string> args =
-      { "-b", path.string(), "-u", std::to_string(uid) };
+      { "-b", path.string(), "-u", uid_str_ };
+  return RunSubprocess(args);
+}
+
+BackendInterface::SubProcessResult BackendInterface::UninstallWithSubprocess(
+    const std::string& pkgid) const {
+  std::vector<std::string> args = { "-d", pkgid, "-u", uid_str_ };
   return RunSubprocess(args);
 }
 
-SmokeTestHelperRunner::Result SmokeTestHelperRunner::UninstallWithSubprocess(
-    const std::string& pkgid, uid_t uid) const {
-  std::vector<std::string> args = { "-d", pkgid, "-u", std::to_string(uid) };
+BackendInterface::SubProcessResult
+BackendInterface::InstallPreloadWithSubprocess(
+    const boost::filesystem::path& path) const {
+  std::vector<std::string> args = { "", "-i", path.string(), "--preload" };
   return RunSubprocess(args);
 }
 
-SmokeTestHelperRunner::Result
-    SmokeTestHelperRunner::InstallWithSubprocessAndKill(
-        const bf::path& path, uid_t uid, useconds_t delay) const {
+BackendInterface::SubProcessResult
+    BackendInterface::InstallWithSubprocessAndKill(
+        const bf::path& path, useconds_t delay) const {
   std::vector<std::string> args =
-      { "-i", path.string(), "-u", std::to_string(uid) };
+      { "-i", path.string(), "-u", uid_str_ };
   return RunSubprocessAndKill(args, delay);
 }
 
-SmokeTestHelperRunner::Result
-    SmokeTestHelperRunner::MountInstallWithSubprocessAndKill(
-        const bf::path& path, uid_t uid, useconds_t delay) const {
+BackendInterface::SubProcessResult
+    BackendInterface::MountInstallWithSubprocessAndKill(
+        const bf::path& path, useconds_t delay) const {
   std::vector<std::string> args =
-      { "-w", path.string(), "-u", std::to_string(uid) };
+      { "-w", path.string(), "-u", uid_str_ };
   return RunSubprocessAndKill(args, delay);
 }
 
-SmokeTestHelperRunner::Result
-    SmokeTestHelperRunner::UninstallWithSubprocessAndKill(
-        const std::string& pkgid, uid_t uid, useconds_t delay) const {
+BackendInterface::SubProcessResult
+    BackendInterface::UninstallWithSubprocessAndKill(
+        const std::string& pkgid, useconds_t delay) const {
   std::vector<std::string> args =
-      { "-d", pkgid, "-u", std::to_string(uid) };
+      { "-d", pkgid, "-u", uid_str_ };
   return RunSubprocessAndKill(args, delay);
 }
 
-SmokeTestHelperRunner::Result SmokeTestHelperRunner::InstallPkgsWithSubprocess(
-    const std::vector<bf::path>& paths, uid_t uid) const {
+BackendInterface::SubProcessResult BackendInterface::InstallPkgsWithSubprocess(
+    const std::vector<bf::path>& paths) const {
   std::vector<std::string> args;
   args.emplace_back("-i");
   for (const bf::path& p : paths)
     args.emplace_back(p.string());
   args.emplace_back("-u");
-  args.emplace_back(std::to_string(uid));
+  args.emplace_back(uid_str_);
   return RunSubprocess(args);
 }
 
-SmokeTestHelperRunner::Result
-    SmokeTestHelperRunner::MountInstallPkgsWithSubprocess(
-    const std::vector<bf::path>& paths, uid_t uid) const {
+BackendInterface::SubProcessResult
+    BackendInterface::MountInstallPkgsWithSubprocess(
+    const std::vector<bf::path>& paths) const {
   std::vector<std::string> args;
   args.emplace_back("-w");
   for (const bf::path& p : paths)
     args.emplace_back(p.string());
   args.emplace_back("-u");
-  args.emplace_back(std::to_string(uid));
+  args.emplace_back(uid_str_);
   return RunSubprocess(args);
 }
 
-SmokeTestHelperRunner::Result SmokeTestHelperRunner::RecoveryPkgsWithSubprocess(
-    const std::vector<bf::path>& paths, uid_t uid) const {
+BackendInterface::SubProcessResult BackendInterface::RecoverPkgsWithSubprocess(
+    const std::vector<bf::path>& paths) const {
   std::vector<std::string> args;
   args.emplace_back("-b");
   for (const bf::path& p : paths)
     args.emplace_back(p.string());
   args.emplace_back("-u");
-  args.emplace_back(std::to_string(uid));
+  args.emplace_back(uid_str_);
   return RunSubprocess(args);
 }
 
-SmokeTestHelperRunner::Result
-    SmokeTestHelperRunner::UninstallPkgsWithSubprocess(
-        const std::vector<std::string>& pkgids, uid_t uid) const {
+BackendInterface::SubProcessResult
+    BackendInterface::UninstallPkgsWithSubprocess(
+        const std::vector<std::string>& pkgids) const {
   std::vector<std::string> args;
   args.emplace_back("-d");
   args.insert(args.end(), pkgids.begin(), pkgids.end());
   args.emplace_back("-u");
-  args.emplace_back(std::to_string(uid));
+  args.emplace_back(uid_str_);
   return RunSubprocess(args);
 }
 
-SmokeTestHelperRunner::Result
-    SmokeTestHelperRunner::InstallPkgsWithSubprocessAndKill(
-        const std::vector<bf::path>& paths, uid_t uid, useconds_t delay) const {
+BackendInterface::SubProcessResult
+    BackendInterface::InstallPkgsWithSubprocessAndKill(
+        const std::vector<bf::path>& paths, useconds_t delay) const {
   std::vector<std::string> args;
   args.emplace_back("-i");
   for (const bf::path& p : paths)
     args.emplace_back(p.string());
   args.emplace_back("-u");
-  args.emplace_back(std::to_string(uid));
+  args.emplace_back(uid_str_);
   return RunSubprocessAndKill(args, delay);
 }
 
-SmokeTestHelperRunner::Result
-    SmokeTestHelperRunner::MountInstallPkgsWithSubprocessAndKill(
-        const std::vector<bf::path>& paths, uid_t uid, useconds_t delay) const {
+BackendInterface::SubProcessResult
+    BackendInterface::MountInstallPkgsWithSubprocessAndKill(
+        const std::vector<bf::path>& paths, useconds_t delay) const {
   std::vector<std::string> args;
   args.emplace_back("-w");
   for (const bf::path& p : paths)
     args.emplace_back(p.string());
   args.emplace_back("-u");
-  args.emplace_back(std::to_string(uid));
+  args.emplace_back(uid_str_);
   return RunSubprocessAndKill(args, delay);
 }
 
index 0674247..94f7569 100644 (file)
@@ -236,6 +236,13 @@ class SmokeInstallerFactory {
 
 class BackendInterface {
  public:
+  enum class SubProcessResult {
+    SUCCESS,
+    FAIL,
+    KILLED,
+    UnKnown
+  };
+
   using CommandResult = common_installer::AppInstaller::Result;
   using SmokeInstallerFactoryPtr = std::unique_ptr<SmokeInstallerFactory>;
   explicit BackendInterface(std::string uid,
@@ -282,6 +289,31 @@ class BackendInterface {
 
   CommandResult Recover(const boost::filesystem::path& recovery_file) const;
 
+  SubProcessResult InstallWithSubprocess(const bf::path& path) const;
+  SubProcessResult MountInstallWithSubprocess(const bf::path& path) const;
+  SubProcessResult RecoverWithSubprocess(const bf::path& path) const;
+  SubProcessResult UninstallWithSubprocess(const std::string& pkgid) const;
+  SubProcessResult InstallPreloadWithSubprocess(
+      const boost::filesystem::path& path) const;
+  SubProcessResult InstallWithSubprocessAndKill(
+      const bf::path& path, useconds_t delay) const;
+  SubProcessResult MountInstallWithSubprocessAndKill(
+      const bf::path& path, useconds_t delay) const;
+  SubProcessResult UninstallWithSubprocessAndKill(
+      const std::string& pkgid, useconds_t delay) const;
+  SubProcessResult InstallPkgsWithSubprocess(
+      const std::vector<bf::path>& paths) const;
+  SubProcessResult MountInstallPkgsWithSubprocess(
+      const std::vector<bf::path>& paths) const;
+  SubProcessResult RecoverPkgsWithSubprocess(
+      const std::vector<bf::path>& paths) const;
+  SubProcessResult UninstallPkgsWithSubprocess(
+      const std::vector<std::string>& pkgids) const;
+  SubProcessResult InstallPkgsWithSubprocessAndKill(
+      const std::vector<bf::path>& paths, useconds_t delay) const;
+  SubProcessResult MountInstallPkgsWithSubprocessAndKill(
+      const std::vector<bf::path>& paths, useconds_t delay) const;
+
  protected:
   CommandResult CallBackend(int argc, const char* argv[]) const;
   CommandResult CallBackendWithRunner(int argc, const char* argv[]) const;
@@ -292,7 +324,7 @@ class BackendInterface {
   std::string uid_str_;
   RequestResult mode_;
 
- private:
+ protected:
   CommandResult RunInstallerWithPkgrmgr(
       common_installer::PkgMgrPtr pkgmgr) const;
   virtual AppQueryInterfacePtr CreateQueryInterface() const = 0;
@@ -302,46 +334,12 @@ class BackendInterface {
       common_installer::PkgMgrPtr pkgmgr, int fail_at = -1) const = 0;
   CommandResult RunInstallersWithPkgmgr(
       common_installer::PkgMgrPtr pkgmgr) const;
-};
-
-class SmokeTestHelperRunner {
- public:
-  enum class Result {
-    SUCCESS,
-    FAIL,
-    KILLED,
-    UnKnown
-  };
-
-  virtual ~SmokeTestHelperRunner() = default;
-  Result InstallWithSubprocess(const bf::path& path, uid_t uid) const;
-  Result MountInstallWithSubprocess(const bf::path& path, uid_t uid) const;
-  Result RecoveryWithSubprocess(const bf::path& path, uid_t uid) const;
-  Result UninstallWithSubprocess(const std::string& pkgid, uid_t uid) const;
-  Result InstallWithSubprocessAndKill(
-      const bf::path& path, uid_t uid, useconds_t delay) const;
-  Result MountInstallWithSubprocessAndKill(
-      const bf::path& path, uid_t uid, useconds_t delay) const;
-  Result UninstallWithSubprocessAndKill(
-      const std::string& pkgid, uid_t uid, useconds_t delay) const;
-  Result InstallPkgsWithSubprocess(
-      const std::vector<bf::path>& paths, uid_t uid) const;
-  Result MountInstallPkgsWithSubprocess(
-      const std::vector<bf::path>& paths, uid_t uid) const;
-  Result RecoveryPkgsWithSubprocess(
-      const std::vector<bf::path>& paths, uid_t uid) const;
-  Result UninstallPkgsWithSubprocess(
-      const std::vector<std::string>& pkgids, uid_t uid) const;
-  Result InstallPkgsWithSubprocessAndKill(
-      const std::vector<bf::path>& paths, uid_t uid, useconds_t delay) const;
-  Result MountInstallPkgsWithSubprocessAndKill(
-      const std::vector<bf::path>& paths, uid_t uid, useconds_t delay) const;
-
- private:
-  Result RunSubprocess(std::vector<std::string> args) const;
-  Result RunSubprocessAndKill(std::vector<std::string> args,
+  SubProcessResult RunSubprocess(std::vector<std::string> args) const;
+  SubProcessResult RunSubprocessAndKill(std::vector<std::string> args,
       useconds_t delay) const;
-  virtual common_installer::Subprocess CreateSubprocess() const = 0;
+  virtual common_installer::Subprocess CreateSubprocess() const {
+    return common_installer::Subprocess("");
+  }
 };
 
 bool CheckAvailableExternalPath();