Fix smoke-test functions for rollback cases 94/218094/8
authorSangyoon Jang <jeremy.jang@samsung.com>
Tue, 19 Nov 2019 09:17:04 +0000 (18:17 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Fri, 29 Nov 2019 04:55:17 +0000 (13:55 +0900)
Requires:
 - https://review.tizen.org/gerrit/#/c/platform/core/appfw/app-installers/+/218093

Change-Id: I456bfa94a24169384629b7c661dbdfff1a35f7de
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/unit_tests/smoke_utils.cc
src/unit_tests/smoke_utils.h

index c7a326d41c397d850280e7cffc4715acb58ca673..7b952e1d41eae4437bc30c1e9b20351ac65e3bbb 100644 (file)
@@ -48,6 +48,12 @@ TpkBackendInterface::CreateInstaller(
   return AppInstallerPtr(new tpk::TpkInstaller(pkgmgr));
 }
 
+TpkBackendInterface::AppInstallerPtr
+TpkBackendInterface::CreateFailExpectedInstaller(
+    ci::PkgMgrPtr pkgmgr, int fail_at) const {
+  return AppInstallerPtr(new FailExpectedTpkInstaller(pkgmgr, fail_at));
+}
+
 TpkBackendInterface::CommandResult
 TpkBackendInterface::InstallWithTEP(
     const bf::path& path, const bf::path& tep) const {
index df1e9a4ff3b83b54df7df1ec087742cddea17d11..e0290508236db3ba1d50e8867c96489a228c2821 100644 (file)
@@ -5,8 +5,9 @@
 #ifndef UNIT_TESTS_SMOKE_UTILS_H_
 #define UNIT_TESTS_SMOKE_UTILS_H_
 
-#include <common/pkgmgr_interface.h>
 #include <common/app_installer.h>
+#include <common/pkgmgr_interface.h>
+#include <common/step/configuration/step_fail.h>
 #include <unit_tests/common/smoke_utils.h>
 
 #include <memory>
@@ -14,6 +15,7 @@
 #include <utility>
 
 #include "tpk/tpk_app_query_interface.h"
+#include "tpk/tpk_installer.h"
 
 namespace smoke_test {
 
@@ -47,6 +49,48 @@ class TpkBackendInterface: public BackendInterface {
   AppQueryInterfacePtr CreateQueryInterface() const override;
   AppInstallerPtr CreateInstaller(
       common_installer::PkgMgrPtr pkgmgr) const override;
+  AppInstallerPtr CreateFailExpectedInstaller(
+      common_installer::PkgMgrPtr pkgmgr, int fail_at) const override;
+};
+
+#define OVERRIDE_STEPS_BLOCK(STEPS)                                            \
+  void STEPS() override {                                                      \
+    tpk::TpkInstaller::STEPS();                                                \
+    if (fail_at_ > -1)                                                         \
+      AddStepAtIndex<common_installer::configuration::StepFail>(fail_at_);     \
+    else                                                                       \
+      AddStep<common_installer::configuration::StepFail>();                    \
+  }                                                                            \
+
+class FailExpectedTpkInstaller : public tpk::TpkInstaller {
+ public:
+  explicit FailExpectedTpkInstaller(
+      common_installer::PkgMgrPtr pkgmgr, int fail_at)
+      : tpk::TpkInstaller(pkgmgr), fail_at_(fail_at) { }
+
+ private:
+  OVERRIDE_STEPS_BLOCK(InstallSteps)
+  OVERRIDE_STEPS_BLOCK(UpdateSteps)
+  OVERRIDE_STEPS_BLOCK(UninstallSteps)
+  OVERRIDE_STEPS_BLOCK(ReinstallSteps)
+  OVERRIDE_STEPS_BLOCK(DeltaSteps)
+  OVERRIDE_STEPS_BLOCK(MoveSteps)
+  OVERRIDE_STEPS_BLOCK(RecoverySteps)
+  OVERRIDE_STEPS_BLOCK(MountInstallSteps)
+  OVERRIDE_STEPS_BLOCK(MountUpdateSteps)
+  OVERRIDE_STEPS_BLOCK(ManifestDirectInstallSteps)
+  OVERRIDE_STEPS_BLOCK(ManifestDirectUpdateSteps)
+  OVERRIDE_STEPS_BLOCK(ManifestPartialInstallSteps)
+  OVERRIDE_STEPS_BLOCK(ManifestPartialUpdateSteps)
+  OVERRIDE_STEPS_BLOCK(PartialUninstallSteps)
+  OVERRIDE_STEPS_BLOCK(ReadonlyUpdateInstallSteps)
+  OVERRIDE_STEPS_BLOCK(ReadonlyUpdateUninstallSteps)
+  OVERRIDE_STEPS_BLOCK(DisablePkgSteps)
+  OVERRIDE_STEPS_BLOCK(EnablePkgSteps)
+  OVERRIDE_STEPS_BLOCK(MigrateExtImgSteps)
+  OVERRIDE_STEPS_BLOCK(RecoverDBSteps)
+
+  int fail_at_;
 };
 
 }  // namespace smoke_test