From: Sangyoon Jang Date: Tue, 19 Nov 2019 09:17:04 +0000 (+0900) Subject: Fix smoke-test functions for rollback cases X-Git-Tag: submit/tizen/20191213.074937~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=afe1c07536565546a1b72f1603302af6c054c056;p=platform%2Fcore%2Fappfw%2Ftpk-backend.git Fix smoke-test functions for rollback cases Requires: - https://review.tizen.org/gerrit/#/c/platform/core/appfw/app-installers/+/218093 Change-Id: I456bfa94a24169384629b7c661dbdfff1a35f7de Signed-off-by: Sangyoon Jang --- diff --git a/src/unit_tests/smoke_utils.cc b/src/unit_tests/smoke_utils.cc index c7a326d..7b952e1 100644 --- a/src/unit_tests/smoke_utils.cc +++ b/src/unit_tests/smoke_utils.cc @@ -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 { diff --git a/src/unit_tests/smoke_utils.h b/src/unit_tests/smoke_utils.h index df1e9a4..e029050 100644 --- a/src/unit_tests/smoke_utils.h +++ b/src/unit_tests/smoke_utils.h @@ -5,8 +5,9 @@ #ifndef UNIT_TESTS_SMOKE_UTILS_H_ #define UNIT_TESTS_SMOKE_UTILS_H_ -#include #include +#include +#include #include #include @@ -14,6 +15,7 @@ #include #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(fail_at_); \ + else \ + AddStep(); \ + } \ + +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