From 82e1a43157ab314688604ddc514fe3df72be4025 Mon Sep 17 00:00:00 2001 From: BrainL Date: Thu, 12 Sep 2024 10:26:19 +0000 Subject: [PATCH 01/29] update services/backup_sa/include/module_external/bms_adapter.h. Signed-off-by: BrainL --- services/backup_sa/include/module_external/bms_adapter.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/backup_sa/include/module_external/bms_adapter.h b/services/backup_sa/include/module_external/bms_adapter.h index 4e94ebfea..5f2dc4497 100644 --- a/services/backup_sa/include/module_external/bms_adapter.h +++ b/services/backup_sa/include/module_external/bms_adapter.h @@ -67,6 +67,9 @@ public: static void GetBundleInfoForSA(std::string bundleName, std::vector &bundleInfos); static bool IsUser0BundleName(std::string bundleName, int32_t userId); + + static std::vector GetBundleInfosForAppend( + const std::vector &incrementalDataList, int32_t userId); private: static bool GetCurBundleExtenionInfo(AppExecFwk::BundleInfo &installedBundle, const std::string &bundleName, std::vector &extensionInfos, sptr bms, -- Gitee From f9aaa7f2faf205473bdd321851720f83d44c72a4 Mon Sep 17 00:00:00 2001 From: BrainL Date: Thu, 12 Sep 2024 10:58:04 +0000 Subject: [PATCH 02/29] update services/backup_sa/src/module_external/bms_adapter.cpp. Signed-off-by: BrainL --- .../backup_sa/src/module_external/bms_adapter.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/services/backup_sa/src/module_external/bms_adapter.cpp b/services/backup_sa/src/module_external/bms_adapter.cpp index f128023a1..070d1fd1b 100644 --- a/services/backup_sa/src/module_external/bms_adapter.cpp +++ b/services/backup_sa/src/module_external/bms_adapter.cpp @@ -516,4 +516,16 @@ bool BundleMgrAdapter::IsUser0BundleName(std::string bundleName, int32_t userId) HILOGI("bundleName:%{public}s is not zero user bundle", bundleName.c_str()); return false; } + +vector GetBundleInfosForAppend( + const std::vector &incrementalDataList, int32_t userId) +{ + auto bundleInfos = BundleMgrAdapter::GetBundleInfosForIncremental(incrementalDataList, userId); + for (auto const &info : incrementalDataList) { + if (SAUtils::IsSABundleName(info.bundleName)) { + GetBundleInfoForSA(info.bundleName, bundleInfos); + } + } + return bundleInfos; +} } // namespace OHOS::FileManagement::Backup -- Gitee From 1b51a2e1a4489e2f1f99db01fd70e79554355337 Mon Sep 17 00:00:00 2001 From: BrainL Date: Thu, 12 Sep 2024 12:57:21 +0000 Subject: [PATCH 03/29] update services/backup_sa/src/module_ipc/service.cpp. Signed-off-by: BrainL --- services/backup_sa/src/module_ipc/service.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/services/backup_sa/src/module_ipc/service.cpp b/services/backup_sa/src/module_ipc/service.cpp index f27ea4e45..bd3a774c7 100644 --- a/services/backup_sa/src/module_ipc/service.cpp +++ b/services/backup_sa/src/module_ipc/service.cpp @@ -642,6 +642,15 @@ void Service::SetCurrentSessProperties(BJsonEntityCaps::BundleInfo &info, } } +vector Service::MakeDetailList(const vector &bundleNames) +{ + vector bundleDetails {}; + for (auto bundleName : bundleNames) { + bundleDetails.emplace_back(BIncrementalData {bundleName, 0}); + } + return bundleDetails; +} + ErrCode Service::AppendBundlesBackupSession(const vector &bundleNames) { HITRACE_METER_NAME(HITRACE_TAG_FILEMANAGEMENT, __PRETTY_FUNCTION__); @@ -652,7 +661,8 @@ ErrCode Service::AppendBundlesBackupSession(const vector &bundleName } session_->IncreaseSessionCnt(__PRETTY_FUNCTION__); // BundleMgrAdapter::GetBundleInfos可能耗时 VerifyCaller(IServiceReverse::Scenario::BACKUP); - auto backupInfos = BundleMgrAdapter::GetBundleInfos(bundleNames, session_->GetSessionUserId()); + auto bundleDetails = MakeDetailList(bundleNames); + auto backupInfos = BundleMgrAdapter::GetBundleInfosForAppend(bundleDetails, session_->GetSessionUserId()); session_->AppendBundles(bundleNames); SetCurrentBackupSessProperties(bundleNames, session_->GetSessionUserId()); for (auto info : backupInfos) { @@ -701,7 +711,8 @@ ErrCode Service::AppendBundlesDetailsBackupSession(const vector &bun std::map> bundleNameDetailMap = BJsonUtil::BuildBundleInfos(bundleNames, bundleInfos, bundleNamesOnly, session_->GetSessionUserId(), isClearDataFlags); - auto backupInfos = BundleMgrAdapter::GetBundleInfos(bundleNames, session_->GetSessionUserId()); + auto bundleDetails = MakeDetailList(bundleNames); + auto backupInfos = BundleMgrAdapter::GetBundleInfosForAppend(bundleDetails, session_->GetSessionUserId()); session_->AppendBundles(bundleNames); for (auto info : backupInfos) { SetCurrentSessProperties(info, isClearDataFlags); -- Gitee From 15478a292325638b66c07394a7a4c64f52741795 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 06:50:09 +0000 Subject: [PATCH 04/29] update services/backup_sa/src/module_ipc/service_incremental.cpp. Signed-off-by: BrainL --- .../src/module_ipc/service_incremental.cpp | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/services/backup_sa/src/module_ipc/service_incremental.cpp b/services/backup_sa/src/module_ipc/service_incremental.cpp index b306cf5f6..0084a4fa1 100644 --- a/services/backup_sa/src/module_ipc/service_incremental.cpp +++ b/services/backup_sa/src/module_ipc/service_incremental.cpp @@ -248,6 +248,15 @@ ErrCode Service::InitIncrementalBackupSession(sptr remote) } } +vector Service::GetBundleNameByDetails(const std::vector &bundlesToBackup) +{ + vector bundleNames {}; + for(auto bundle : bundlesToBackup) { + bundleNames.emplace_back(bundle.bundleName); + } + return bundleNames; +} + ErrCode Service::AppendBundlesIncrementalBackupSession(const std::vector &bundlesToBackup) { HITRACE_METER_NAME(HITRACE_TAG_FILEMANAGEMENT, __PRETTY_FUNCTION__); @@ -258,11 +267,9 @@ ErrCode Service::AppendBundlesIncrementalBackupSession(const std::vectorIncreaseSessionCnt(__PRETTY_FUNCTION__); // BundleMgrAdapter::GetBundleInfos可能耗时 VerifyCaller(IServiceReverse::Scenario::BACKUP); - vector bundleNames {}; - for (auto &bundle : bundlesToBackup) { - bundleNames.emplace_back(bundle.bundleName); - } - auto backupInfos = BundleMgrAdapter::GetBundleInfos(bundleNames, session_->GetSessionUserId()); + vector bundleNames = GetBundleNameByDetails(bundlesToBackup); + auto backupInfos = BundleMgrAdapter::GetBundleInfosForAppend(bundlesToBackup, + session_->GetSessionUserId()); session_->AppendBundles(bundleNames); SetCurrentBackupSessProperties(bundleNames, session_->GetSessionUserId()); for (auto info : backupInfos) { @@ -302,16 +309,14 @@ ErrCode Service::AppendBundlesIncrementalBackupSession(const std::vectorIncreaseSessionCnt(__PRETTY_FUNCTION__); // BundleMgrAdapter::GetBundleInfos可能耗时 VerifyCaller(IServiceReverse::Scenario::BACKUP); - vector bundleNames {}; - for (auto &bundle : bundlesToBackup) { - bundleNames.emplace_back(bundle.bundleName); - } + vector bundleNames = GetBundleNameByDetails(bundlesToBackup); std::vector bundleNamesOnly; std::map isClearDataFlags; std::map> bundleNameDetailMap = BJsonUtil::BuildBundleInfos(bundleNames, infos, bundleNamesOnly, session_->GetSessionUserId(), isClearDataFlags); - auto backupInfos = BundleMgrAdapter::GetBundleInfos(bundleNames, session_->GetSessionUserId()); + auto backupInfos = BundleMgrAdapter::GetBundleInfosForAppend(bundlesToBackup, + session_->GetSessionUserId()); session_->AppendBundles(bundleNames); for (auto info : backupInfos) { SetCurrentSessProperties(info, isClearDataFlags); -- Gitee From 9617c70dd98300c39f6b34f54fb99b009beaeaf2 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 06:51:57 +0000 Subject: [PATCH 05/29] update services/backup_sa/include/module_ipc/service.h. Signed-off-by: BrainL --- services/backup_sa/include/module_ipc/service.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/backup_sa/include/module_ipc/service.h b/services/backup_sa/include/module_ipc/service.h index 5759dbbfe..a76133ed9 100644 --- a/services/backup_sa/include/module_ipc/service.h +++ b/services/backup_sa/include/module_ipc/service.h @@ -470,6 +470,10 @@ private: const std::string &bundleName, const ErrCode ret); void ReleaseOnException(); + + vector MakeDetailList(const vector &bundleNames); + + vector GetBundleNameByDetails(const std::vector &bundlesToBackup); private: static sptr instance_; static std::mutex instanceLock_; -- Gitee From 189dc5c68eddc79fc8b3729bd107b0af871bd313 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 07:34:15 +0000 Subject: [PATCH 06/29] update frameworks/native/backup_ext/include/tar_file.h. Signed-off-by: BrainL --- frameworks/native/backup_ext/include/tar_file.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frameworks/native/backup_ext/include/tar_file.h b/frameworks/native/backup_ext/include/tar_file.h index 4cfdb490a..2d19e241e 100644 --- a/frameworks/native/backup_ext/include/tar_file.h +++ b/frameworks/native/backup_ext/include/tar_file.h @@ -86,7 +86,8 @@ public: bool Packet(const std::vector &srcFiles, const std::string &tarFileName, const std::string &pkPath, - TarMap &tarMap); + TarMap &tarMap, + std::function reportCb); /** * @brief set packet mode @@ -108,7 +109,7 @@ private: * @return true 遍历成功 * @return false 遍历失败 */ - bool TraversalFile(std::string &fileName); + bool TraversalFile(std::string &fileName, int &err); /** * @brief add files to the tar package @@ -116,7 +117,7 @@ private: * @param filename 文件名 * @param st 文件参数结构体 */ - bool AddFile(std::string &fileName, const struct stat &st); + bool AddFile(std::string &fileName, const struct stat &st, int &err); /** * @brief write files to content @@ -124,7 +125,7 @@ private: * @param filename 文件名 * @param size 文件大小 */ - bool WriteFileContent(const std::string &fileName, off_t size); + bool WriteFileContent(const std::string &fileName, off_t size, int &err); /** * @brief split write -- Gitee From 49f3701de5f0a4399db5e1e8d5a52b208debaa5b Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 07:36:29 +0000 Subject: [PATCH 07/29] update frameworks/native/backup_ext/include/ext_extension.h. Signed-off-by: BrainL --- frameworks/native/backup_ext/include/ext_extension.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frameworks/native/backup_ext/include/ext_extension.h b/frameworks/native/backup_ext/include/ext_extension.h index 7d3090684..0448a93a5 100644 --- a/frameworks/native/backup_ext/include/ext_extension.h +++ b/frameworks/native/backup_ext/include/ext_extension.h @@ -281,6 +281,9 @@ private: int32_t GetOnStartTimeCost(); bool SetStagingPathProperties(); + std::function ReportErrFileByProc(wptr obj, + BackupRestoreScenario scenario); + private: std::shared_mutex lock_; std::shared_ptr extension_; @@ -311,6 +314,8 @@ private: std::mutex onStartTimeLock_; OHOS::ThreadPool onProcessTaskPool_; AppRadar::DoRestoreInfo radarRestoreInfo_ { 0 }; + + BackupRestoreScenario curScenario_; }; } // namespace OHOS::FileManagement::Backup -- Gitee From 66c5453cedd65957527d694008c369e7f5dac92a Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 07:55:06 +0000 Subject: [PATCH 08/29] update frameworks/native/backup_ext/src/ext_extension.cpp. Signed-off-by: BrainL --- .../native/backup_ext/src/ext_extension.cpp | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/frameworks/native/backup_ext/src/ext_extension.cpp b/frameworks/native/backup_ext/src/ext_extension.cpp index 40b1f73b1..05fbdfd0b 100644 --- a/frameworks/native/backup_ext/src/ext_extension.cpp +++ b/frameworks/native/backup_ext/src/ext_extension.cpp @@ -621,6 +621,22 @@ static ErrCode TarFileReady(const TarMap &tarFileInfo, sptr proxy) return ret; } +std::function BackupExtExtension::ReportErrFileByProc(wptr obj, + BackupRestoreScenario scenario) +{ + return [obj, scenario](std::string path, int err) { + auto extPtr = obj.promote(); + if (extPtr == nullptr) { + HILOGE("ReportErr-- ExtPtr is empty."); + return; + } + string jsonInfo; + BJsonUtil::BuildOnProcessErrInfo(jsonInfo, path, err); + HILOGI("ReportErr-- Will notify err info: %{public}s", jsonInfo.c_str()); + extPtr->ReportAppProcessInfo(jsonInfo, scenario); + } +} + void BackupExtExtension::DoPacket(const map &srcFiles, TarMap &tar, sptr proxy) { HILOGI("DoPacket begin, infos count: %{public}zu", srcFiles.size()); @@ -631,13 +647,14 @@ void BackupExtExtension::DoPacket(const map &srcFiles, TarMap &t TarFile::GetInstance().SetPacketMode(true); // 设置下打包模式 auto startTime = std::chrono::system_clock::now(); int fdNum = 0; + auto reportCb = ReportErrFileByProc(wptr {this}, curScenario_); for (auto small : srcFiles) { totalSize += small.second; fileCount += 1; packFiles.emplace_back(small.first); if (totalSize >= BConstants::DEFAULT_SLICE_SIZE || fileCount >= BConstants::MAX_FILE_COUNT) { TarMap tarMap {}; - TarFile::GetInstance().Packet(packFiles, "part", path, tarMap); + TarFile::GetInstance().Packet(packFiles, "part", path, tarMap, reportCb); tar.insert(tarMap.begin(), tarMap.end()); // 执行tar包回传功能 WaitToSendFd(startTime, fdNum); @@ -652,7 +669,7 @@ void BackupExtExtension::DoPacket(const map &srcFiles, TarMap &t if (fileCount > 0) { // 打包回传 TarMap tarMap {}; - TarFile::GetInstance().Packet(packFiles, "part", path, tarMap); + TarFile::GetInstance().Packet(packFiles, "part", path, tarMap, reportCb); TarFileReady(tarMap, proxy); fdNum = 1; WaitToSendFd(startTime, fdNum); @@ -1998,6 +2015,7 @@ void BackupExtExtension::IncrementalPacket(const vector & auto startTime = std::chrono::system_clock::now(); int fdNum = 0; string partName = GetIncrmentPartName(); + auto reportCb = ReportErrFileByProc(wptr {this}, curScenario_); for (auto small : infos) { totalSize += static_cast(small.size); fileCount += 1; @@ -2005,7 +2023,7 @@ void BackupExtExtension::IncrementalPacket(const vector & tarInfos.emplace_back(small); if (totalSize >= BConstants::DEFAULT_SLICE_SIZE || fileCount >= BConstants::MAX_FILE_COUNT) { TarMap tarMap {}; - TarFile::GetInstance().Packet(packFiles, partName, path, tarMap); + TarFile::GetInstance().Packet(packFiles, partName, path, tarMap, reportCb); tar.insert(tarMap.begin(), tarMap.end()); // 执行tar包回传功能 WaitToSendFd(startTime, fdNum); @@ -2021,7 +2039,7 @@ void BackupExtExtension::IncrementalPacket(const vector & if (fileCount > 0) { // 打包回传 TarMap tarMap {}; - TarFile::GetInstance().Packet(packFiles, partName, path, tarMap); + TarFile::GetInstance().Packet(packFiles, partName, path, tarMap, reportCb); IncrementalTarFileReady(tarMap, tarInfos, proxy); fdNum = 1; WaitToSendFd(startTime, fdNum); -- Gitee From 1d6484c32e3be6084fc243236e88127e137848c6 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 07:59:39 +0000 Subject: [PATCH 09/29] update utils/include/b_jsonutil/b_jsonutil.h. Signed-off-by: BrainL --- utils/include/b_jsonutil/b_jsonutil.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/utils/include/b_jsonutil/b_jsonutil.h b/utils/include/b_jsonutil/b_jsonutil.h index 910a19704..075816580 100644 --- a/utils/include/b_jsonutil/b_jsonutil.h +++ b/utils/include/b_jsonutil/b_jsonutil.h @@ -128,6 +128,18 @@ public: */ static bool BuildOnProcessRetInfo(std::string &jsonStr, std::string onProcessRet); + /** + * @brief 组建App进度返回的信息 + * + * @param reportInfo 组建结果 + * @param path 报错文件 + * @param err 错误码 + * + * @return 是否组建成功 + * + */ + static bool BuildOnProcessErrInfo(std::string &reportInfo, std::string path, int err); + /** * @brief 构建包含userId的detailInfo * -- Gitee From af4212fe5f64c2216d78c540ddf00aae6f5c2892 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 08:13:28 +0000 Subject: [PATCH 10/29] update utils/src/b_jsonutil/b_jsonutil.cpp. Signed-off-by: BrainL --- utils/src/b_jsonutil/b_jsonutil.cpp | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/utils/src/b_jsonutil/b_jsonutil.cpp b/utils/src/b_jsonutil/b_jsonutil.cpp index cf05d7fe1..bcf310e7c 100644 --- a/utils/src/b_jsonutil/b_jsonutil.cpp +++ b/utils/src/b_jsonutil/b_jsonutil.cpp @@ -378,6 +378,41 @@ bool OHOS::FileManagement::Backup::BJsonUtil::BuildOnProcessRetInfo(std::string return true; } +static bool BuildOnProcessErrInfo(std::string &reportInfo, std::string path, int err) +{ + cJSON *info = cJSON_CreateObject(); + if (info == nullptr) { + return false; + } + cJSON *item = cJSON_CreateObject(); + if (item == nullptr) { + cJSON_Delete(info); + return false; + } + cJSON *errInfoJs = cJSON_CreateObject(); + if (errInfoJs == nullptr) { + cJSON_Delete(info); + cJSON_Delete(item); + return false; + } + std::string errStr = std::to_string(err); + std::string timeInfo = std::to_string(TimeUtils::GetTimeS()); + cJSON_AddStringToObject(errInfoJs, "errorCode", errStr.c_str()); + cJSON_AddStringToObject(errInfoJs, "errorMessage", path.c_str()); + cJSON_AddStringToObject(item, "timeInfo", timeInfo.c_str()); + cJSON_AddItemToObject(item, "errorInfo", errInfoJs); + cJSON_AddItemToObject(info, "processResult", item); + char *data = cJSON_Print(info); + if (data == nullptr) { + cJSON_Delete(info); + return false; + } + jsonStr = std::string(data); + cJSON_Delete(info); + cJSON_free(data); + return true; +} + bool OHOS::FileManagement::Backup::BJsonUtil::BuildBundleInfoJson(int32_t userId, string &detailInfo) { cJSON *root = cJSON_CreateObject(); -- Gitee From 5fcd9114db65a16df843dd7e214eb9d29f24c64c Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 08:34:41 +0000 Subject: [PATCH 11/29] update frameworks/native/backup_ext/src/ext_extension.cpp. Signed-off-by: BrainL --- frameworks/native/backup_ext/src/ext_extension.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frameworks/native/backup_ext/src/ext_extension.cpp b/frameworks/native/backup_ext/src/ext_extension.cpp index 05fbdfd0b..165666cfe 100644 --- a/frameworks/native/backup_ext/src/ext_extension.cpp +++ b/frameworks/native/backup_ext/src/ext_extension.cpp @@ -1384,6 +1384,7 @@ void BackupExtExtension::AsyncTaskRestoreForUpgrade() HILOGE("On restore, start ext timer fail."); return; } + ptr->curScenario_ = BackupRestoreScenario::FULL_RESTORE; ptr->StartOnProcessTaskThread(obj, BackupRestoreScenario::FULL_RESTORE); auto callBackup = ptr->OnRestoreCallback(obj); auto callBackupEx = ptr->OnRestoreExCallback(obj); @@ -1435,6 +1436,7 @@ void BackupExtExtension::AsyncTaskIncrementalRestoreForUpgrade() HILOGE("On incrementalRestore, start ext timer fail."); return; } + ptr->curScenario_ = BackupRestoreScenario::INCREMENTAL_RESTORE; ptr->StartOnProcessTaskThread(obj, BackupRestoreScenario::INCREMENTAL_RESTORE); auto callBackup = ptr->IncreOnRestoreCallback(obj); auto callBackupEx = ptr->IncreOnRestoreExCallback(obj); @@ -1582,6 +1584,7 @@ void BackupExtExtension::AsyncTaskOnBackup() BExcepUltils::BAssert(ptr, BError::Codes::EXT_BROKEN_FRAMEWORK, "Ext extension handle have been released"); BExcepUltils::BAssert(ptr->extension_, BError::Codes::EXT_INVAL_ARG, "Extension handle have been released"); try { + ptr->curScenario_ = BackupRestoreScenario::FULL_BACKUP; ptr->StartOnProcessTaskThread(obj, BackupRestoreScenario::FULL_BACKUP); auto callBackup = ptr->OnBackupCallback(obj); auto callBackupEx = ptr->OnBackupExCallback(obj); @@ -1964,6 +1967,7 @@ void BackupExtExtension::AsyncTaskOnIncrementalBackup() BExcepUltils::BAssert(ptr, BError::Codes::EXT_BROKEN_FRAMEWORK, "Ext extension handle have been released"); BExcepUltils::BAssert(ptr->extension_, BError::Codes::EXT_INVAL_ARG, "Extension handle have been released"); try { + ptr->curScenario_ = BackupRestoreScenario::INCREMENTAL_BACKUP; ptr->StartOnProcessTaskThread(obj, BackupRestoreScenario::INCREMENTAL_BACKUP); auto callBackup = ptr->IncOnBackupCallback(obj); auto callBackupEx = ptr->IncOnBackupExCallback(obj); -- Gitee From dff7e059804e3f30d1164d2da9a2830af1e95a3e Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 08:46:00 +0000 Subject: [PATCH 12/29] update frameworks/native/backup_ext/src/tar_file.cpp. Signed-off-by: BrainL --- frameworks/native/backup_ext/src/tar_file.cpp | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/frameworks/native/backup_ext/src/tar_file.cpp b/frameworks/native/backup_ext/src/tar_file.cpp index d9c82b76d..e1a0dd513 100644 --- a/frameworks/native/backup_ext/src/tar_file.cpp +++ b/frameworks/native/backup_ext/src/tar_file.cpp @@ -51,7 +51,8 @@ TarFile &TarFile::GetInstance() return instance; } -bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, const string &pkPath, TarMap &tarMap) +bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, const string &pkPath, TarMap &tarMap, + std::function reportCb) { if (tarFileName.empty() || pkPath.empty()) { HILOGE("Invalid parameter"); @@ -70,9 +71,12 @@ bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, size_t index = 0; for (const auto &filePath : srcFiles) { + int err = 0; rootPath_ = filePath; - if (!TraversalFile(rootPath_)) { - HILOGE("Failed to traversal file, file path is:%{public}s", GetAnonyPath(filePath).c_str()); + if (!TraversalFile(rootPath_, err)) { + HILOGE("Failed to traversal file, file path is:%{public}s, err = %{public}d", + GetAnonyPath(filePath).c_str(), err); + reportCb(rootPath_, err); } index++; if (index >= WAIT_INDEX) { @@ -94,9 +98,10 @@ bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, return true; } -bool TarFile::TraversalFile(string &filePath) +bool TarFile::TraversalFile(string &filePath, int &err) { if (access(filePath.c_str(), F_OK) != 0) { + err = errno; HILOGE("File path does not exists, err = %{public}d", errno); return false; } @@ -108,10 +113,11 @@ bool TarFile::TraversalFile(string &filePath) return false; } if (lstat(filePath.c_str(), &curFileStat) != 0) { + err = errno; HILOGE("Failed to lstat, err = %{public}d", errno); return false; } - if (!AddFile(filePath, curFileStat)) { + if (!AddFile(filePath, curFileStat, err)) { HILOGE("Failed to add file to tar package, file path is:%{public}s", GetAnonyPath(filePath).c_str()); return false; } @@ -250,7 +256,7 @@ static bool ReadyHeader(TarHeader &hdr, const string &fileName) return true; } -bool TarFile::AddFile(string &fileName, const struct stat &st) +bool TarFile::AddFile(string &fileName, const struct stat &st, int &err) { HILOGD("tar file %{public}s", fileName.c_str()); currentFileName_ = fileName; @@ -286,7 +292,7 @@ bool TarFile::AddFile(string &fileName, const struct stat &st) return false; } // write src file content to tar file - if (!WriteFileContent(fileName, st.st_size)) { + if (!WriteFileContent(fileName, st.st_size, err)) { HILOGE("Failed to write file content"); return false; } @@ -294,10 +300,11 @@ bool TarFile::AddFile(string &fileName, const struct stat &st) return true; } -bool TarFile::WriteFileContent(const string &fileName, off_t size) +bool TarFile::WriteFileContent(const string &fileName, off_t size, int &err) { int fd = open(fileName.c_str(), O_RDONLY | O_CLOEXEC); if (fd < 0) { + err = errno; HILOGE("Failed to open file %{public}s, err = %{public}d", GetAnonyString(fileName).data(), errno); return false; } -- Gitee From 9b699c8dd76ecc97ca1ac6d0a81f1ba4a1e95f14 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 08:54:49 +0000 Subject: [PATCH 13/29] update frameworks/native/backup_ext/src/ext_extension.cpp. Signed-off-by: BrainL --- frameworks/native/backup_ext/src/ext_extension.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/native/backup_ext/src/ext_extension.cpp b/frameworks/native/backup_ext/src/ext_extension.cpp index 165666cfe..06784ae0c 100644 --- a/frameworks/native/backup_ext/src/ext_extension.cpp +++ b/frameworks/native/backup_ext/src/ext_extension.cpp @@ -632,9 +632,9 @@ std::function BackupExtExtension::ReportErrFileByProc(wp } string jsonInfo; BJsonUtil::BuildOnProcessErrInfo(jsonInfo, path, err); - HILOGI("ReportErr-- Will notify err info: %{public}s", jsonInfo.c_str()); + HILOGI("ReportErr-- Will notify err info."); extPtr->ReportAppProcessInfo(jsonInfo, scenario); - } + }; } void BackupExtExtension::DoPacket(const map &srcFiles, TarMap &tar, sptr proxy) -- Gitee From 0850730be524237d1eb67514a6997f2010a84126 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 08:56:11 +0000 Subject: [PATCH 14/29] update frameworks/native/backup_ext/src/tar_file.cpp. Signed-off-by: BrainL --- frameworks/native/backup_ext/src/tar_file.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/native/backup_ext/src/tar_file.cpp b/frameworks/native/backup_ext/src/tar_file.cpp index e1a0dd513..5a2a9c11a 100644 --- a/frameworks/native/backup_ext/src/tar_file.cpp +++ b/frameworks/native/backup_ext/src/tar_file.cpp @@ -74,7 +74,7 @@ bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, int err = 0; rootPath_ = filePath; if (!TraversalFile(rootPath_, err)) { - HILOGE("Failed to traversal file, file path is:%{public}s, err = %{public}d", + HILOGE("ReportErr-- Failed to traversal file, file path is:%{public}s, err = %{public}d", GetAnonyPath(filePath).c_str(), err); reportCb(rootPath_, err); } -- Gitee From 259b6f7f423d336578129a3104e733947528cbf7 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 09:03:55 +0000 Subject: [PATCH 15/29] update services/backup_sa/src/module_ipc/service_incremental.cpp. Signed-off-by: BrainL --- services/backup_sa/src/module_ipc/service_incremental.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/backup_sa/src/module_ipc/service_incremental.cpp b/services/backup_sa/src/module_ipc/service_incremental.cpp index 0084a4fa1..739e1beca 100644 --- a/services/backup_sa/src/module_ipc/service_incremental.cpp +++ b/services/backup_sa/src/module_ipc/service_incremental.cpp @@ -273,7 +273,7 @@ ErrCode Service::AppendBundlesIncrementalBackupSession(const std::vectorAppendBundles(bundleNames); SetCurrentBackupSessProperties(bundleNames, session_->GetSessionUserId()); for (auto info : backupInfos) { - session_->SetBundleDataSize(info.name, info.spaceOccupied); + session_->SetBundleDataSize(info.name, info.increSpaceOccupied); session_->SetBackupExtName(info.name, info.extensionName); if (info.allToBackup == false) { session_->GetServiceReverseProxy()->IncrementalBackupOnBundleStarted( @@ -320,6 +320,7 @@ ErrCode Service::AppendBundlesIncrementalBackupSession(const std::vectorAppendBundles(bundleNames); for (auto info : backupInfos) { SetCurrentSessProperties(info, isClearDataFlags); + session_->SetBundleDataSize(info.name, info.increSpaceOccupied); if (info.allToBackup == false) { session_->GetServiceReverseProxy()->IncrementalBackupOnBundleStarted( BError(BError::Codes::SA_FORBID_BACKUP_RESTORE), info.name); -- Gitee From 6914bc1f91330a46e8116cd0029fd6992c59d4b8 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 09:23:59 +0000 Subject: [PATCH 16/29] update services/backup_sa/src/module_ipc/service.cpp. Signed-off-by: BrainL --- services/backup_sa/src/module_ipc/service.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/services/backup_sa/src/module_ipc/service.cpp b/services/backup_sa/src/module_ipc/service.cpp index bd3a774c7..820027345 100644 --- a/services/backup_sa/src/module_ipc/service.cpp +++ b/services/backup_sa/src/module_ipc/service.cpp @@ -650,7 +650,6 @@ vector Service::MakeDetailList(const vector &bundl } return bundleDetails; } - ErrCode Service::AppendBundlesBackupSession(const vector &bundleNames) { HITRACE_METER_NAME(HITRACE_TAG_FILEMANAGEMENT, __PRETTY_FUNCTION__); -- Gitee From cd2282fe81d7fbbea005cc4b549d130277625a97 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 09:29:41 +0000 Subject: [PATCH 17/29] update services/backup_sa/src/module_ipc/service_incremental.cpp. Signed-off-by: BrainL --- services/backup_sa/src/module_ipc/service_incremental.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/backup_sa/src/module_ipc/service_incremental.cpp b/services/backup_sa/src/module_ipc/service_incremental.cpp index 739e1beca..8a47c20af 100644 --- a/services/backup_sa/src/module_ipc/service_incremental.cpp +++ b/services/backup_sa/src/module_ipc/service_incremental.cpp @@ -251,7 +251,7 @@ ErrCode Service::InitIncrementalBackupSession(sptr remote) vector Service::GetBundleNameByDetails(const std::vector &bundlesToBackup) { vector bundleNames {}; - for(auto bundle : bundlesToBackup) { + for (auto bundle : bundlesToBackup) { bundleNames.emplace_back(bundle.bundleName); } return bundleNames; -- Gitee From a49e9ae3248584fd59a9f493415b3c42b99e3efc Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 09:31:09 +0000 Subject: [PATCH 18/29] update services/backup_sa/src/module_external/bms_adapter.cpp. Signed-off-by: BrainL --- services/backup_sa/src/module_external/bms_adapter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/backup_sa/src/module_external/bms_adapter.cpp b/services/backup_sa/src/module_external/bms_adapter.cpp index 070d1fd1b..b9303f09b 100644 --- a/services/backup_sa/src/module_external/bms_adapter.cpp +++ b/services/backup_sa/src/module_external/bms_adapter.cpp @@ -517,8 +517,8 @@ bool BundleMgrAdapter::IsUser0BundleName(std::string bundleName, int32_t userId) return false; } -vector GetBundleInfosForAppend( - const std::vector &incrementalDataList, int32_t userId) +vector GetBundleInfosForAppend(const std::vector &incrementalDataList, + int32_t userId) { auto bundleInfos = BundleMgrAdapter::GetBundleInfosForIncremental(incrementalDataList, userId); for (auto const &info : incrementalDataList) { -- Gitee From fb301aca557d43fc8fec1646053ee4fb9fc325cf Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 09:54:15 +0000 Subject: [PATCH 19/29] update services/backup_sa/src/module_ipc/service.cpp. Signed-off-by: BrainL --- services/backup_sa/src/module_ipc/service.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/services/backup_sa/src/module_ipc/service.cpp b/services/backup_sa/src/module_ipc/service.cpp index 820027345..7d3e197d3 100644 --- a/services/backup_sa/src/module_ipc/service.cpp +++ b/services/backup_sa/src/module_ipc/service.cpp @@ -394,7 +394,6 @@ static vector GetRestoreBundleNames(UniqueFd fd, auto cache = cachedEntity.Structuralize(); auto bundleInfos = cache.GetBundleInfos(); if (!bundleInfos.size()) { - HILOGE("GetRestoreBundleNames bundleInfos is empty."); throw BError(BError::Codes::SA_INVAL_ARG, "Json entity caps is empty"); } HILOGI("restoreInfos size is:%{public}zu", restoreInfos.size()); -- Gitee From 3b5099587d25655694b512ee52193afa930ad5ea Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 10:12:57 +0000 Subject: [PATCH 20/29] update services/backup_sa/src/module_external/bms_adapter.cpp. Signed-off-by: BrainL --- services/backup_sa/src/module_external/bms_adapter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/backup_sa/src/module_external/bms_adapter.cpp b/services/backup_sa/src/module_external/bms_adapter.cpp index b9303f09b..47417639e 100644 --- a/services/backup_sa/src/module_external/bms_adapter.cpp +++ b/services/backup_sa/src/module_external/bms_adapter.cpp @@ -517,7 +517,7 @@ bool BundleMgrAdapter::IsUser0BundleName(std::string bundleName, int32_t userId) return false; } -vector GetBundleInfosForAppend(const std::vector &incrementalDataList, +vector BundleMgrAdapter::GetBundleInfosForAppend(const std::vector &incrementalDataList, int32_t userId) { auto bundleInfos = BundleMgrAdapter::GetBundleInfosForIncremental(incrementalDataList, userId); -- Gitee From 95b1372e164315e26c5a8ed7d51fab3d14d1efe2 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 10:39:12 +0000 Subject: [PATCH 21/29] update services/backup_sa/src/module_external/bms_adapter.cpp. Signed-off-by: BrainL --- services/backup_sa/src/module_external/bms_adapter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/backup_sa/src/module_external/bms_adapter.cpp b/services/backup_sa/src/module_external/bms_adapter.cpp index 47417639e..85124dae0 100644 --- a/services/backup_sa/src/module_external/bms_adapter.cpp +++ b/services/backup_sa/src/module_external/bms_adapter.cpp @@ -517,11 +517,11 @@ bool BundleMgrAdapter::IsUser0BundleName(std::string bundleName, int32_t userId) return false; } -vector BundleMgrAdapter::GetBundleInfosForAppend(const std::vector &incrementalDataList, +vector BundleMgrAdapter::GetBundleInfosForAppend(const std::vector &list, int32_t userId) { - auto bundleInfos = BundleMgrAdapter::GetBundleInfosForIncremental(incrementalDataList, userId); - for (auto const &info : incrementalDataList) { + auto bundleInfos = BundleMgrAdapter::GetBundleInfosForIncremental(list, userId); + for (auto const &info : list) { if (SAUtils::IsSABundleName(info.bundleName)) { GetBundleInfoForSA(info.bundleName, bundleInfos); } -- Gitee From e851ae6b3c4af8cf679094fa2f822af873afa878 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 10:47:36 +0000 Subject: [PATCH 22/29] update utils/src/b_jsonutil/b_jsonutil.cpp. Signed-off-by: BrainL --- utils/src/b_jsonutil/b_jsonutil.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/src/b_jsonutil/b_jsonutil.cpp b/utils/src/b_jsonutil/b_jsonutil.cpp index bcf310e7c..e9f40e2ca 100644 --- a/utils/src/b_jsonutil/b_jsonutil.cpp +++ b/utils/src/b_jsonutil/b_jsonutil.cpp @@ -378,7 +378,7 @@ bool OHOS::FileManagement::Backup::BJsonUtil::BuildOnProcessRetInfo(std::string return true; } -static bool BuildOnProcessErrInfo(std::string &reportInfo, std::string path, int err) +bool OHOS::FileManagement::Backup::BJsonUtil::BuildOnProcessErrInfo(std::string &reportInfo, std::string path, int err) { cJSON *info = cJSON_CreateObject(); if (info == nullptr) { @@ -407,7 +407,7 @@ static bool BuildOnProcessErrInfo(std::string &reportInfo, std::string path, int cJSON_Delete(info); return false; } - jsonStr = std::string(data); + reportInfo = std::string(data); cJSON_Delete(info); cJSON_free(data); return true; -- Gitee From 31c7c58fdf080563c4c41d2baea9096ebec31fed Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 12:24:08 +0000 Subject: [PATCH 23/29] update frameworks/native/backup_ext/src/tar_file.cpp. Signed-off-by: BrainL --- frameworks/native/backup_ext/src/tar_file.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frameworks/native/backup_ext/src/tar_file.cpp b/frameworks/native/backup_ext/src/tar_file.cpp index 5a2a9c11a..c59fea754 100644 --- a/frameworks/native/backup_ext/src/tar_file.cpp +++ b/frameworks/native/backup_ext/src/tar_file.cpp @@ -76,7 +76,9 @@ bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, if (!TraversalFile(rootPath_, err)) { HILOGE("ReportErr-- Failed to traversal file, file path is:%{public}s, err = %{public}d", GetAnonyPath(filePath).c_str(), err); - reportCb(rootPath_, err); + if (err != EACCES) { + reportCb("", err); + } } index++; if (index >= WAIT_INDEX) { -- Gitee From 715b8a078616bac2850e719f3ad61c71423a4a80 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 12:24:49 +0000 Subject: [PATCH 24/29] update frameworks/native/backup_ext/src/tar_file.cpp. Signed-off-by: BrainL --- frameworks/native/backup_ext/src/tar_file.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/native/backup_ext/src/tar_file.cpp b/frameworks/native/backup_ext/src/tar_file.cpp index c59fea754..6f456bf84 100644 --- a/frameworks/native/backup_ext/src/tar_file.cpp +++ b/frameworks/native/backup_ext/src/tar_file.cpp @@ -74,7 +74,7 @@ bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, int err = 0; rootPath_ = filePath; if (!TraversalFile(rootPath_, err)) { - HILOGE("ReportErr-- Failed to traversal file, file path is:%{public}s, err = %{public}d", + HILOGE("ReportErr Failed to traversal file, file path is:%{public}s, err = %{public}d", GetAnonyPath(filePath).c_str(), err); if (err != EACCES) { reportCb("", err); -- Gitee From 67bc0f5ca7d99af30af3af7028c7b73e7871338d Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 12:26:16 +0000 Subject: [PATCH 25/29] update frameworks/native/backup_ext/src/ext_extension.cpp. Signed-off-by: BrainL --- frameworks/native/backup_ext/src/ext_extension.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frameworks/native/backup_ext/src/ext_extension.cpp b/frameworks/native/backup_ext/src/ext_extension.cpp index 06784ae0c..6bbd6c71c 100644 --- a/frameworks/native/backup_ext/src/ext_extension.cpp +++ b/frameworks/native/backup_ext/src/ext_extension.cpp @@ -624,15 +624,15 @@ static ErrCode TarFileReady(const TarMap &tarFileInfo, sptr proxy) std::function BackupExtExtension::ReportErrFileByProc(wptr obj, BackupRestoreScenario scenario) { - return [obj, scenario](std::string path, int err) { + return [obj, scenario](std::string msg, int err) { auto extPtr = obj.promote(); if (extPtr == nullptr) { - HILOGE("ReportErr-- ExtPtr is empty."); + HILOGE("ReportErr ExtPtr is empty."); return; } string jsonInfo; - BJsonUtil::BuildOnProcessErrInfo(jsonInfo, path, err); - HILOGI("ReportErr-- Will notify err info."); + BJsonUtil::BuildOnProcessErrInfo(jsonInfo, msg, err); + HILOGI("ReportErr Will notify err info."); extPtr->ReportAppProcessInfo(jsonInfo, scenario); }; } -- Gitee From afe7b35c0c0c257652ab90334dcfa803ed270165 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 12:45:49 +0000 Subject: [PATCH 26/29] update tests/unittests/backup_ext/tar_file_test.cpp. Signed-off-by: BrainL --- tests/unittests/backup_ext/tar_file_test.cpp | 37 +++++++++++++++----- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/tests/unittests/backup_ext/tar_file_test.cpp b/tests/unittests/backup_ext/tar_file_test.cpp index 49d094a2f..b1848785f 100644 --- a/tests/unittests/backup_ext/tar_file_test.cpp +++ b/tests/unittests/backup_ext/tar_file_test.cpp @@ -101,14 +101,17 @@ HWTEST_F(TarFileTest, SUB_Tar_File_Packet_0100, testing::ext::TestSize.Level1) string tarFileName = ""; string pkPath = ""; TarMap tarMap; - bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap); + auto reportCb = [](std::string path, int err) { + return; + }; + bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap, reportCb); EXPECT_TRUE(tarMap.empty()); EXPECT_FALSE(ret); TestManager tm("SUB_Tar_File_Packet_0100"); string root = tm.GetRootDirCurTest(); pkPath = root; - ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap); + ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap, reportCb); EXPECT_TRUE(tarMap.empty()); EXPECT_FALSE(ret); } catch (...) { @@ -143,7 +146,10 @@ HWTEST_F(TarFileTest, SUB_Tar_File_Packet_0200, testing::ext::TestSize.Level1) TarMap tarMap; string tarFileName = "part"; string pkPath = root; - bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap); + auto reportCb = [](std::string path, int err) { + return; + }; + bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap, reportCb); EXPECT_TRUE(ret); EXPECT_EQ(tarMap.size(), 1); ClearCache(); @@ -179,7 +185,10 @@ HWTEST_F(TarFileTest, SUB_Tar_File_Packet_0300, testing::ext::TestSize.Level1) string pkPath = root; string tarFileName = "part"; TarMap tarMap; - bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap); + auto reportCb = [](std::string path, int err) { + return; + }; + bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap, reportCb); EXPECT_TRUE(ret); EXPECT_EQ(tarMap.size(), 1); ClearCache(); @@ -207,7 +216,10 @@ HWTEST_F(TarFileTest, SUB_Tar_File_Packet_0400, testing::ext::TestSize.Level1) string tarFileName = "part"; string pkPath = "/data/storage/el2/backup/backup"; TarMap tarMap; - bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap); + auto reportCb = [](std::string path, int err) { + return; + }; + bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap, reportCb); EXPECT_FALSE(ret); EXPECT_TRUE(tarMap.empty()); } catch (...) { @@ -248,7 +260,10 @@ HWTEST_F(TarFileTest, SUB_Tar_File_Packet_0500, testing::ext::TestSize.Level1) string tarFileName = "part"; string pkPath = root; TarMap tarMap; - bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap); + auto reportCb = [](std::string path, int err) { + return; + }; + bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap, reportCb); EXPECT_TRUE(ret); EXPECT_EQ(tarMap.size(), 1); ClearCache(); @@ -291,7 +306,10 @@ HWTEST_F(TarFileTest, SUB_Tar_File_Packet_0600, testing::ext::TestSize.Level1) TarMap tarMap; string tarFileName = "part"; string pkPath = root; - bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap); + auto reportCb = [](std::string path, int err) { + return; + }; + bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap, reportCb); EXPECT_TRUE(ret); EXPECT_EQ(tarMap.size(), 2); ClearCache(); @@ -339,7 +357,10 @@ HWTEST_F(TarFileTest, SUB_Tar_File_Packet_0700, testing::ext::TestSize.Level1) string tarFileName = "part"; string pkPath = root; TarMap tarMap; - bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap); + auto reportCb = [](std::string path, int err) { + return; + }; + bool ret = TarFile::GetInstance().Packet(srcFiles, tarFileName, pkPath, tarMap, reportCb); EXPECT_TRUE(ret); EXPECT_EQ(tarMap.size(), 2); ClearCache(); -- Gitee From 116ea84abcaadd9dddda845d42830ecd4e30f72c Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 12:48:16 +0000 Subject: [PATCH 27/29] update tests/unittests/backup_ext/untar_file_test.cpp. Signed-off-by: BrainL --- .../unittests/backup_ext/untar_file_test.cpp | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/unittests/backup_ext/untar_file_test.cpp b/tests/unittests/backup_ext/untar_file_test.cpp index 13a425214..f67ba503d 100644 --- a/tests/unittests/backup_ext/untar_file_test.cpp +++ b/tests/unittests/backup_ext/untar_file_test.cpp @@ -273,7 +273,10 @@ HWTEST_F(UntarFileTest, SUB_Untar_File_UnPacket_0500, testing::ext::TestSize.Lev vector smallFiles; smallFiles.emplace_back(aFile); smallFiles.emplace_back(bFile); - TarFile::GetInstance().Packet(smallFiles, "test", root, tarMap); + auto reportCb = [](std::string msg, int err) { + return; + }; + TarFile::GetInstance().Packet(smallFiles, "test", root, tarMap, reportCb); string rootPath(root); auto [ret, fileInfos, errFileInfos] = UntarFile::GetInstance().UnPacket(tarFile, rootPath); @@ -323,7 +326,10 @@ HWTEST_F(UntarFileTest, SUB_Untar_File_IncrementalUnPacket_0100, testing::ext::T vector smallFiles; smallFiles.emplace_back(aFile); smallFiles.emplace_back(bFile); - TarFile::GetInstance().Packet(smallFiles, "test", root, tarMap); + auto reportCb = [](std::string msg, int err) { + return; + }; + TarFile::GetInstance().Packet(smallFiles, "test", root, tarMap, reportCb); string tarFile = root + "/test.0.tar"; string rootPath(root); @@ -397,7 +403,10 @@ HWTEST_F(UntarFileTest, SUB_Untar_File_IncrementalUnPacket_0300, testing::ext::T TarMap tarMap {}; vector smallFiles; smallFiles.emplace_back(aFile); - TarFile::GetInstance().Packet(smallFiles, "test", root, tarMap); + auto reportCb = [](std::string msg, int err) { + return; + }; + TarFile::GetInstance().Packet(smallFiles, "test", root, tarMap, reportCb); string tarFile = root + "/test.0.tar"; string rootPath(root); @@ -454,7 +463,10 @@ HWTEST_F(UntarFileTest, SUB_Untar_File_IncrementalUnPacket_0400, testing::ext::T vector smallFiles; smallFiles.emplace_back(aFile); smallFiles.emplace_back(bFile); - TarFile::GetInstance().Packet(smallFiles, "test", root, tarMap); + auto reportCb = [](std::string msg, int err) { + return; + }; + TarFile::GetInstance().Packet(smallFiles, "test", root, tarMap, reportCb); string tarFile = root + "/test.0.tar"; string rootPath(root); -- Gitee From e9f4a32d789c121ff3868df6944cacbc60f98249 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 12:49:51 +0000 Subject: [PATCH 28/29] update tests/mock/module_external/include/bms_adapter_mock.h. Signed-off-by: BrainL --- tests/mock/module_external/include/bms_adapter_mock.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/mock/module_external/include/bms_adapter_mock.h b/tests/mock/module_external/include/bms_adapter_mock.h index adb1e1cf5..3a98456bd 100644 --- a/tests/mock/module_external/include/bms_adapter_mock.h +++ b/tests/mock/module_external/include/bms_adapter_mock.h @@ -51,6 +51,8 @@ public: MOCK_METHOD(std::string, GetExtName, (std::string, int32_t)); MOCK_METHOD((std::vector), GetBundleInfosForSA, ()); MOCK_METHOD(void, GetBundleInfoForSA, (std::string, (std::vector&))); + MOCK_METHOD((std::vector), GetBundleInfosForAppend, + ((const std::vector&), int32_t)); }; } // namespace OHOS::FileManagement::Backup #endif // OHOS_FILEMGMT_BACKUP_BMS_ADAPTER_MOCK_H -- Gitee From 3d600b6e8e45ce82402aa9b5be2c1d181e17e074 Mon Sep 17 00:00:00 2001 From: BrainL Date: Sat, 14 Sep 2024 12:51:39 +0000 Subject: [PATCH 29/29] update tests/mock/module_external/bms_adapter_mock.cpp. Signed-off-by: BrainL --- tests/mock/module_external/bms_adapter_mock.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/mock/module_external/bms_adapter_mock.cpp b/tests/mock/module_external/bms_adapter_mock.cpp index 141c3ab5f..71b8af8ef 100644 --- a/tests/mock/module_external/bms_adapter_mock.cpp +++ b/tests/mock/module_external/bms_adapter_mock.cpp @@ -81,4 +81,14 @@ bool BundleMgrAdapter::IsUser0BundleName(std::string bundleName, int32_t userId) { return true; } + +vector BundleMgrAdapter::GetBundleInfosForAppend( + const vector &incrementalDataList, int32_t userId) +{ + vector bundleInfos; + bundleInfos.emplace_back( + BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, {}, {}, 0, 0, true, false, + "com.example.app2backup"}); + return bundleInfos; +} } // namespace OHOS::FileManagement::Backup -- Gitee