Fix for MountUpdateMode_Rollback_Hybrid 25/98725/6 accepted/tizen/3.0/common/20161125.101733 accepted/tizen/3.0/ivi/20161125.081916 accepted/tizen/3.0/mobile/20161125.081412 accepted/tizen/3.0/tv/20161125.081721 accepted/tizen/3.0/wearable/20161125.081828 submit/tizen_3.0/20161124.130849
authorBartlomiej Kunikowski <b.kunikowski@partner.samsung.com>
Fri, 18 Nov 2016 10:43:39 +0000 (11:43 +0100)
committerjongmyeongko <jongmyeong.ko@samsung.com>
Thu, 24 Nov 2016 13:44:18 +0000 (22:44 +0900)
The backup directory was not removed in undo for StepTpkPreparePackageDirectory.

Verify:
 # su - app_fw
 $ /usr/bin/wgt-backend-ut/smoke-test

Submit together:
 - https://review.tizen.org/gerrit/#/c/98724/

Requires:
 - https://review.tizen.org/gerrit/#/c/97898/

Change-Id: Ief869db12206cc7c05424ab56848aa2089b86788
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
src/tpk/step/filesystem/step_tpk_update_package_directory.cc
src/tpk/step/filesystem/step_tpk_update_package_directory.h

index 0ec0789..03ca4f8 100644 (file)
@@ -74,6 +74,19 @@ ci::Step::Status StepTpkUpdatePackageDirectory::RestoreDirectory(
   return Status::OK;
 }
 
+ci::Step::Status StepTpkUpdatePackageDirectory::RemoveDirectory(
+    const boost::filesystem::path& dir_path) {
+  if (bf::exists(dir_path)) {
+    bs::error_code error;
+    bf::remove_all(dir_path, error);
+    if (error) {
+      LOG(ERROR) << "Failed to remove directory: " << dir_path;
+      return Status::APP_DIR_ERROR;
+    }
+  }
+  return Status::OK;
+}
+
 ci::Step::Status StepTpkUpdatePackageDirectory::BackupEntries() {
   bf::path backup_path =
       ci::GetBackupPathForPackagePath(context_->pkg_path.get());
@@ -98,15 +111,7 @@ ci::Step::Status StepTpkUpdatePackageDirectory::process() {
 ci::Step::Status StepTpkUpdatePackageDirectory::clean() {
   bf::path backup_path =
       ci::GetBackupPathForPackagePath(context_->pkg_path.get());
-  if (bf::exists(backup_path)) {
-    bs::error_code error;
-    bf::remove(backup_path, error);
-    if (error) {
-      LOG(ERROR) << "Failed to remove backup path: " << backup_path;
-      return Status::APP_DIR_ERROR;
-    }
-  }
-  return Status::OK;
+  return RemoveDirectory(backup_path);
 }
 
 ci::Step::Status StepTpkUpdatePackageDirectory::undo() {
@@ -118,7 +123,8 @@ ci::Step::Status StepTpkUpdatePackageDirectory::undo() {
     if (status != Status::OK)
       return status;
   }
-  return Status::OK;
+
+  return RemoveDirectory(backup_path);
 }
 
 }  // namespace filesystem
index b33d9b4..9f0fea6 100644 (file)
@@ -41,6 +41,7 @@ class TPK_BACKEND_EXPORT_API StepTpkUpdatePackageDirectory
                           const boost::filesystem::path& backup_path);
   Status RestoreDirectory(const std::string& entry,
                           const boost::filesystem::path& backup_path);
+  Status RemoveDirectory(const boost::filesystem::path& dir_path);
 
   STEP_NAME(TpkUpdatePackageDirectory)
 };