1 Star 0 Fork 266

chensihan/filemanagement_app_file_service

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
BUILD.gn 64.23 KB
一键复制 编辑 原始数据 按行查看 历史
chensihan 提交于 2025-03-07 15:09 +08:00 . update BUILD.gn.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407
/**
* @tc.number: b_jsonutil_BuildInitSessionErrInfo_0701
* @tc.name: b_jsonutil_BuildInitSessionErrInfo_0701
* @tc.desc: Test function of BuildInitSessionErrInfo interface.
* @tc.size: MEDIUM
* @tc.type: FUNC
* @tc.level Level 0
* @tc.require: I6F3GV
*/
HWTEST_F(BJsonUtilTest, b_jsonutil_BuildInitSessionErrInfo_0701, testing::ext::TestSize.Level0)
{
GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildInitSessionErrInfo_0701";
try {
int32_t userId = 0;
std::string callerName;
std::string activeTime;
int cjson = 0;
EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(nullptr));
auto result = BJsonUtil::BuildInitSessionErrInfo(userId, callerName, activeTime);
EXPECT_EQ(result, "");
EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(nullptr));
EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
result = BJsonUtil::BuildInitSessionErrInfo(userId, callerName, activeTime);
EXPECT_EQ(result, "");
EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
EXPECT_CALL(*cJsonMock, cJSON_AddItemToObject(_, _, _)).WillOnce(Return(true));
EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(nullptr));
EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
result = BJsonUtil::BuildInitSessionErrInfo(userId, callerName, activeTime);
EXPECT_EQ(result, "");
EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
EXPECT_CALL(*cJsonMock, cJSON_AddItemToObject(_, _, _)).WillOnce(Return(true));
EXPECT_CALL(*cJsonMock, cJSON_CreateObject())
.WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)))
.WillOnce(Return(nullptr));
EXPECT_CALL(*cJsonMock, cJSON_AddItemToArray(_, _)).WillOnce(Return(true));
EXPECT_CALL(*cJsonMock, cJSON_AddStringToObject(_, _, _))
.WillOnce(Return(nullptr))
.WillOnce(Return(nullptr))
.WillOnce(Return(nullptr));
EXPECT_CALL(*cJsonMock, cJSON_Print(_)).WillOnce(Return(nullptr));
EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
result = BJsonUtil::BuildInitSessionErrInfo(userId, callerName, activeTime);
EXPECT_EQ(result, "");
} catch (...) {
EXPECT_TRUE(false);
GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred.";
}
GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildInitSessionErrInfo_0701";
}
/**
* @tc.number: b_jsonutil_WriteToStr_0801
* @tc.name: b_jsonutil_WriteToStr_0801
* @tc.desc: Test function of WriteToStr interface.
* @tc.size: MEDIUM
* @tc.type: FUNC
* @tc.level Level 0
* @tc.require: I6F3GV
*/
HWTEST_F(BJsonUtilTest, b_jsonutil_WriteToStr_0801, testing::ext::TestSize.Level0)
{
GTEST_LOG_(INFO) << "BJsonUtilTest-begin WriteToStr_0801";
try {
std::vector<BJsonUtil::BundleDataSize> bundleDataList;
size_t listSize = 0;
std::string scanning;
std::string jsonStr;
int cjson = 0;
EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(nullptr));
auto result = BJsonUtil::WriteToStr(bundleDataList, listSize, scanning, jsonStr);
EXPECT_FALSE(result);
EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(nullptr));
EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
result = BJsonUtil::WriteToStr(bundleDataList, listSize, scanning, jsonStr);
EXPECT_FALSE(result);
EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
EXPECT_CALL(*cJsonMock, cJSON_AddItemToObject(_, _, _)).WillOnce(Return(true));
EXPECT_CALL(*cJsonMock, cJSON_AddStringToObject(_, _, _)).WillOnce(Return(nullptr));
EXPECT_CALL(*cJsonMock, cJSON_Print(_)).WillOnce(Return(nullptr));
EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
result = BJsonUtil::WriteToStr(bundleDataList, listSize, scanning, jsonStr);
EXPECT_FALSE(result);
} catch (...) {
EXPECT_TRUE(false);
GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred.";
}
GTEST_LOG_(INFO) << "BJsonUtilTest-end WriteToStr_0801";
}
/**
* @tc.number: SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100
* @tc.name: SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100
* @tc.desc: Test function of BackupOnScanningInfo interface for SUCCESS.
* @tc.size: MEDIUM
* @tc.type: FUNC
* @tc.level Level 1
* @tc.require: I6F3GV
*/
HWTEST_F(ServiceReverseProxyTest, SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100, testing::ext::TestSize.Level1)
{
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-begin SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100";
try {
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
EXPECT_CALL(*mock_, SendRequest(_, _, _, _))
.Times(1)
.WillOnce(Invoke(mock_.GetRefPtr(), &ServiceReverseMock::InvokeSendRequest));
EXPECT_TRUE(proxy_ != nullptr);
std::string scannedInfo;
proxy_->BackupOnScanningInfo(scannedInfo);
EXPECT_TRUE(true);
} catch (...) {
EXPECT_TRUE(false);
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-an exception occurred by BackupOnScanningInfo.";
}
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-end SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100";
}
/**
* @tc.number: SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101
* @tc.name: SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101
* @tc.desc: Test function of BackupOnScanningInfo interface for FAILURE.
* @tc.size: MEDIUM
* @tc.type: FUNC
* @tc.level Level 1
* @tc.require: I6F3GV
*/
HWTEST_F(ServiceReverseProxyTest, SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101,
testing::ext::TestSize.Level1)
{
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-begin SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101";
try {
std::string scannedInfo;
try {
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(false));
EXPECT_TRUE(proxy_ != nullptr);
proxy_->BackupOnScanningInfo(scannedInfo);
EXPECT_TRUE(false);
} catch (BError &err) {
EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
}
try {
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(false));
EXPECT_TRUE(proxy_ != nullptr);
proxy_->BackupOnScanningInfo(scannedInfo);
EXPECT_TRUE(false);
} catch (BError &err) {
EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
}
try {
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
EXPECT_CALL(*mock_, SendRequest(_, _, _, _)).WillOnce(Return(-1));
proxy_->BackupOnScanningInfo(scannedInfo);
EXPECT_TRUE(false);
} catch (BError &err) {
EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
}
} catch (...) {
EXPECT_TRUE(false);
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-an exception occurred by BackupOnScanningInfo.";
}
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-end SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101";
}
/**
* @tc.number: SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100
* @tc.name: SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100
* @tc.desc: Test function of IncrementalBackupOnScanningInfo interface for SUCCESS.
* @tc.size: MEDIUM
* @tc.type: FUNC
* @tc.level Level 1
* @tc.require: I6F3GV
*/
HWTEST_F(ServiceReverseProxyTest, SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100, testing::ext::TestSize.Level1)
{
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-begin SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100";
try {
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
EXPECT_CALL(*mock_, SendRequest(_, _, _, _))
.Times(1)
.WillOnce(Invoke(mock_.GetRefPtr(), &ServiceReverseMock::InvokeSendRequest));
EXPECT_TRUE(proxy_ != nullptr);
std::string scannedInfo;
proxy_->IncrementalBackupOnScanningInfo(scannedInfo);
EXPECT_TRUE(true);
} catch (...) {
EXPECT_TRUE(false);
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-an exception occurred by IncrementalBackupOnScanningInfo.";
}
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-end SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100";
}
/**
* @tc.number: SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101
* @tc.name: SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101
* @tc.desc: Test function of IncrementalBackupOnScanningInfo interface for FAILURE.
* @tc.size: MEDIUM
* @tc.type: FUNC
* @tc.level Level 1
* @tc.require: I6F3GV
*/
HWTEST_F(ServiceReverseProxyTest, SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101,
testing::ext::TestSize.Level1)
{
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-begin SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101";
try {
std::string scannedInfo;
try {
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(false));
EXPECT_TRUE(proxy_ != nullptr);
proxy_->IncrementalBackupOnScanningInfo(scannedInfo);
EXPECT_TRUE(false);
} catch (BError &err) {
EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
}
try {
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(false));
EXPECT_TRUE(proxy_ != nullptr);
proxy_->IncrementalBackupOnScanningInfo(scannedInfo);
EXPECT_TRUE(false);
} catch (BError &err) {
EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
}
try {
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
EXPECT_CALL(*mock_, SendRequest(_, _, _, _)).WillOnce(Return(-1));
proxy_->IncrementalBackupOnScanningInfo(scannedInfo);
EXPECT_TRUE(false);
} catch (BError &err) {
EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
}
} catch (...) {
EXPECT_TRUE(false);
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-an exception occurred by IncrementalBackupOnScanningInfo.";
}
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-end SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101";
}
/**
* @tc.number: SUB_backup_sa_session_Exception_0100
* @tc.name: SUB_backup_sa_session_Exception_0100
* @tc.desc: 测试 Exception
* @tc.size: MEDIUM
* @tc.type: FUNC
* @tc.level Level 1
* @tc.require: I6F3GV
*/
HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_Exception_0100, testing::ext::TestSize.Level1)
{
GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_Exception_0100";
try {
EXPECT_TRUE(sessionManagerPtr_ != nullptr);
sessionManagerPtr_->impl_.clientToken = CLIENT_TOKEN_ID;
sessionManagerPtr_->impl_.backupExtNameMap.clear();
sessionManagerPtr_->SetExtFileNameRequest(BUNDLE_NAME, "");
EXPECT_TRUE(true);
sessionManagerPtr_->impl_.scenario = IServiceReverse::Scenario::RESTORE;
std::set<std::string> fileSet = sessionManagerPtr_->GetExtFileNameRequest(BUNDLE_NAME);
EXPECT_TRUE(fileSet.empty());
sessionManagerPtr_->SetBackupExtName(BUNDLE_NAME, "");
EXPECT_TRUE(true);
std::string extName = sessionManagerPtr_->GetBackupExtName(BUNDLE_NAME);
EXPECT_TRUE(extName.empty());
sessionManagerPtr_->SetBackupExtInfo(BUNDLE_NAME, "");
EXPECT_TRUE(true);
std::string extInfo = sessionManagerPtr_->GetBackupExtInfo(BUNDLE_NAME);
EXPECT_TRUE(extInfo.empty());
sessionManagerPtr_->SetBundleUserId(BUNDLE_NAME, 0);
EXPECT_TRUE(true);
int32_t id = sessionManagerPtr_->GetBundleUserId(BUNDLE_NAME);
EXPECT_EQ(id, sessionManagerPtr_->GetSessionUserId());
} catch (...) {
EXPECT_TRUE(false);
GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by Exception.";
}
GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_Exception_0100";
}
/**
* @tc.number: SUB_backup_sa_session_Exception_0200
* @tc.name: SUB_backup_sa_session_Exception_0200
* @tc.desc: 测试 Exception
* @tc.size: MEDIUM
* @tc.type: FUNC
* @tc.level Level 1
* @tc.require: I6F3GV
*/
HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_Exception_0200, testing::ext::TestSize.Level1)
{
GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_Exception_0200";
try {
EXPECT_TRUE(sessionManagerPtr_ != nullptr);
sessionManagerPtr_->impl_.clientToken = CLIENT_TOKEN_ID;
sessionManagerPtr_->impl_.backupExtNameMap.clear();
sessionManagerPtr_->SetBundleRestoreType(BUNDLE_NAME, RestoreTypeEnum::RESTORE_DATA_WAIT_SEND);
EXPECT_TRUE(true);
RestoreTypeEnum restoreType = sessionManagerPtr_->GetBundleRestoreType(BUNDLE_NAME);
EXPECT_EQ(restoreType, RestoreTypeEnum::RESTORE_DATA_WAIT_SEND);
sessionManagerPtr_->SetBundleVersionCode(BUNDLE_NAME, 0);
EXPECT_TRUE(true);
int64_t versionCode = sessionManagerPtr_->GetBundleVersionCode(BUNDLE_NAME);
EXPECT_EQ(versionCode, 0);
sessionManagerPtr_->SetBundleVersionName(BUNDLE_NAME, "");
EXPECT_TRUE(true);
std::string versionName = sessionManagerPtr_->GetBundleVersionName(BUNDLE_NAME);
EXPECT_TRUE(versionName.empty());
sessionManagerPtr_->SetClearDataFlag(BUNDLE_NAME, true);
EXPECT_TRUE(true);
bool flag = sessionManagerPtr_->GetClearDataFlag(BUNDLE_NAME);
EXPECT_TRUE(flag);
} catch (...) {
EXPECT_TRUE(false);
GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by Exception.";
}
GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_Exception_0200";
}
diff --git a/tests/unittests/backup_sa/module_ipc/service_reverse_proxy_test.cpp b/tests/unittests/backup_sa/module_ipc/service_reverse_proxy_test.cpp
index 48853ff..c2abd10 100644
--- a/tests/unittests/backup_sa/module_ipc/service_reverse_proxy_test.cpp
+++ b/tests/unittests/backup_sa/module_ipc/service_reverse_proxy_test.cpp
@@ -2524,4 +2524,162 @@ HWTEST_F(ServiceReverseProxyTest, SUB_ServiceReverse_proxy_IncrementalRestoreOnP
}
GTEST_LOG_(INFO) << "ServiceReverseProxyTest-end SUB_ServiceReverse_proxy_IncrementalRestoreOnProcessInfo_0101";
}
+
+/**
+ * @tc.number: SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100
+ * @tc.name: SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100
+ * @tc.desc: Test function of BackupOnScanningInfo interface for SUCCESS.
+ * @tc.size: MEDIUM
+ * @tc.type: FUNC
+ * @tc.level Level 1
+ * @tc.require: I6F3GV
+ */
+HWTEST_F(ServiceReverseProxyTest, SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100, testing::ext::TestSize.Level1)
+{
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-begin SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100";
+ try {
+ EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
+ EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
+ EXPECT_CALL(*mock_, SendRequest(_, _, _, _))
+ .Times(1)
+ .WillOnce(Invoke(mock_.GetRefPtr(), &ServiceReverseMock::InvokeSendRequest));
+ EXPECT_TRUE(proxy_ != nullptr);
+ std::string scannedInfo;
+ proxy_->BackupOnScanningInfo(scannedInfo);
+ EXPECT_TRUE(true);
+ } catch (...) {
+ EXPECT_TRUE(false);
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-an exception occurred by BackupOnScanningInfo.";
+ }
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-end SUB_ServiceReverse_proxy_BackupOnScanningInfo_0100";
+}
+
+/**
+ * @tc.number: SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101
+ * @tc.name: SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101
+ * @tc.desc: Test function of BackupOnScanningInfo interface for FAILURE.
+ * @tc.size: MEDIUM
+ * @tc.type: FUNC
+ * @tc.level Level 1
+ * @tc.require: I6F3GV
+ */
+HWTEST_F(ServiceReverseProxyTest, SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101,
+ testing::ext::TestSize.Level1)
+{
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-begin SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101";
+ try {
+ std::string scannedInfo;
+ try {
+ EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(false));
+ EXPECT_TRUE(proxy_ != nullptr);
+ proxy_->BackupOnScanningInfo(scannedInfo);
+ EXPECT_TRUE(false);
+ } catch (BError &err) {
+ EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
+ }
+
+ try {
+ EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
+ EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(false));
+ EXPECT_TRUE(proxy_ != nullptr);
+ proxy_->BackupOnScanningInfo(scannedInfo);
+ EXPECT_TRUE(false);
+ } catch (BError &err) {
+ EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
+ }
+
+ try {
+ EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
+ EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
+ EXPECT_CALL(*mock_, SendRequest(_, _, _, _)).WillOnce(Return(-1));
+ proxy_->BackupOnScanningInfo(scannedInfo);
+ EXPECT_TRUE(false);
+ } catch (BError &err) {
+ EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
+ }
+ } catch (...) {
+ EXPECT_TRUE(false);
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-an exception occurred by BackupOnScanningInfo.";
+ }
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-end SUB_ServiceReverse_proxy_BackupOnScanningInfo_0101";
+}
+
+/**
+ * @tc.number: SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100
+ * @tc.name: SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100
+ * @tc.desc: Test function of IncrementalBackupOnScanningInfo interface for SUCCESS.
+ * @tc.size: MEDIUM
+ * @tc.type: FUNC
+ * @tc.level Level 1
+ * @tc.require: I6F3GV
+ */
+HWTEST_F(ServiceReverseProxyTest, SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100, testing::ext::TestSize.Level1)
+{
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-begin SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100";
+ try {
+ EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
+ EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
+ EXPECT_CALL(*mock_, SendRequest(_, _, _, _))
+ .Times(1)
+ .WillOnce(Invoke(mock_.GetRefPtr(), &ServiceReverseMock::InvokeSendRequest));
+ EXPECT_TRUE(proxy_ != nullptr);
+ std::string scannedInfo;
+ proxy_->IncrementalBackupOnScanningInfo(scannedInfo);
+ EXPECT_TRUE(true);
+ } catch (...) {
+ EXPECT_TRUE(false);
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-an exception occurred by IncrementalBackupOnScanningInfo.";
+ }
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-end SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0100";
+}
+
+/**
+ * @tc.number: SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101
+ * @tc.name: SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101
+ * @tc.desc: Test function of IncrementalBackupOnScanningInfo interface for FAILURE.
+ * @tc.size: MEDIUM
+ * @tc.type: FUNC
+ * @tc.level Level 1
+ * @tc.require: I6F3GV
+ */
+HWTEST_F(ServiceReverseProxyTest, SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101,
+ testing::ext::TestSize.Level1)
+{
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-begin SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101";
+ try {
+ std::string scannedInfo;
+ try {
+ EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(false));
+ EXPECT_TRUE(proxy_ != nullptr);
+ proxy_->IncrementalBackupOnScanningInfo(scannedInfo);
+ EXPECT_TRUE(false);
+ } catch (BError &err) {
+ EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
+ }
+
+ try {
+ EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
+ EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(false));
+ EXPECT_TRUE(proxy_ != nullptr);
+ proxy_->IncrementalBackupOnScanningInfo(scannedInfo);
+ EXPECT_TRUE(false);
+ } catch (BError &err) {
+ EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
+ }
+
+ try {
+ EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
+ EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
+ EXPECT_CALL(*mock_, SendRequest(_, _, _, _)).WillOnce(Return(-1));
+ proxy_->IncrementalBackupOnScanningInfo(scannedInfo);
+ EXPECT_TRUE(false);
+ } catch (BError &err) {
+ EXPECT_EQ(err.GetRawCode(), BError::Codes::SA_BROKEN_IPC);
+ }
+ } catch (...) {
+ EXPECT_TRUE(false);
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-an exception occurred by IncrementalBackupOnScanningInfo.";
+ }
+ GTEST_LOG_(INFO) << "ServiceReverseProxyTest-end SUB_ServiceReverse_proxy_IncrementalBackupOnScanningInfo_0101";
+}
} // namespace OHOS::FileManagement::Backup
\ No newline at end of file
diff --git a/tests/unittests/backup_sa/module_ipc/svc_session_manager_test.cpp b/tests/unittests/backup_sa/module_ipc/svc_session_manager_test.cpp
index 54c6a50..00fb5bd 100644
--- a/tests/unittests/backup_sa/module_ipc/svc_session_manager_test.cpp
+++ b/tests/unittests/backup_sa/module_ipc/svc_session_manager_test.cpp
@@ -1996,5 +1996,100 @@ HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_SetImplRestoreType_0100, t
}
GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_SetImplRestoreType_0100";
}
+
+/**
+ * @tc.number: SUB_backup_sa_session_Exception_0100
+ * @tc.name: SUB_backup_sa_session_Exception_0100
+ * @tc.desc: 测试 Exception
+ * @tc.size: MEDIUM
+ * @tc.type: FUNC
+ * @tc.level Level 1
+ * @tc.require: I6F3GV
+ */
+HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_Exception_0100, testing::ext::TestSize.Level1)
+{
+ GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_Exception_0100";
+ try {
+ EXPECT_TRUE(sessionManagerPtr_ != nullptr);
+ sessionManagerPtr_->impl_.clientToken = CLIENT_TOKEN_ID;
+ sessionManagerPtr_->impl_.backupExtNameMap.clear();
+
+ sessionManagerPtr_->SetExtFileNameRequest(BUNDLE_NAME, "");
+ EXPECT_TRUE(true);
+
+ sessionManagerPtr_->impl_.scenario = IServiceReverse::Scenario::RESTORE;
+ std::set<std::string> fileSet = sessionManagerPtr_->GetExtFileNameRequest(BUNDLE_NAME);
+ EXPECT_TRUE(fileSet.empty());
+
+ sessionManagerPtr_->SetBackupExtName(BUNDLE_NAME, "");
+ EXPECT_TRUE(true);
+
+ std::string extName = sessionManagerPtr_->GetBackupExtName(BUNDLE_NAME);
+ EXPECT_TRUE(extName.empty());
+
+ sessionManagerPtr_->SetBackupExtInfo(BUNDLE_NAME, "");
+ EXPECT_TRUE(true);
+
+ std::string extInfo = sessionManagerPtr_->GetBackupExtInfo(BUNDLE_NAME);
+ EXPECT_TRUE(extInfo.empty());
+
+ sessionManagerPtr_->SetBundleUserId(BUNDLE_NAME, 0);
+ EXPECT_TRUE(true);
+
+ int32_t id = sessionManagerPtr_->GetBundleUserId(BUNDLE_NAME);
+ EXPECT_EQ(id, sessionManagerPtr_->GetSessionUserId());
+ } catch (...) {
+ EXPECT_TRUE(false);
+ GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by Exception.";
+ }
+ GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_Exception_0100";
+}
+
+/**
+ * @tc.number: SUB_backup_sa_session_Exception_0200
+ * @tc.name: SUB_backup_sa_session_Exception_0200
+ * @tc.desc: 测试 Exception
+ * @tc.size: MEDIUM
+ * @tc.type: FUNC
+ * @tc.level Level 1
+ * @tc.require: I6F3GV
+ */
+HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_Exception_0200, testing::ext::TestSize.Level1)
+{
+ GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_Exception_0200";
+ try {
+ EXPECT_TRUE(sessionManagerPtr_ != nullptr);
+ sessionManagerPtr_->impl_.clientToken = CLIENT_TOKEN_ID;
+ sessionManagerPtr_->impl_.backupExtNameMap.clear();
+
+ sessionManagerPtr_->SetBundleRestoreType(BUNDLE_NAME, RestoreTypeEnum::RESTORE_DATA_WAIT_SEND);
+ EXPECT_TRUE(true);
+
+ RestoreTypeEnum restoreType = sessionManagerPtr_->GetBundleRestoreType(BUNDLE_NAME);
+ EXPECT_EQ(restoreType, RestoreTypeEnum::RESTORE_DATA_WAIT_SEND);
+
+ sessionManagerPtr_->SetBundleVersionCode(BUNDLE_NAME, 0);
+ EXPECT_TRUE(true);
+
+ int64_t versionCode = sessionManagerPtr_->GetBundleVersionCode(BUNDLE_NAME);
+ EXPECT_EQ(versionCode, 0);
+
+ sessionManagerPtr_->SetBundleVersionName(BUNDLE_NAME, "");
+ EXPECT_TRUE(true);
+
+ std::string versionName = sessionManagerPtr_->GetBundleVersionName(BUNDLE_NAME);
+ EXPECT_TRUE(versionName.empty());
+
+ sessionManagerPtr_->SetClearDataFlag(BUNDLE_NAME, true);
+ EXPECT_TRUE(true);
+
+ bool flag = sessionManagerPtr_->GetClearDataFlag(BUNDLE_NAME);
+ EXPECT_TRUE(flag);
+ } catch (...) {
+ EXPECT_TRUE(false);
+ GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by Exception.";
+ }
+ GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_Exception_0200";
+}
#include "svc_session_manager_ex_test.cpp"
} // namespace OHOS::FileManagement::Backup
\ No newline at end of file
diff --git a/tests/unittests/backup_utils/b_jsonutil/b_jsonutil_other_test.cpp b/tests/unittests/backup_utils/b_jsonutil/b_jsonutil_other_test.cpp
index b33ae44..3974242 100644
--- a/tests/unittests/backup_utils/b_jsonutil/b_jsonutil_other_test.cpp
+++ b/tests/unittests/backup_utils/b_jsonutil/b_jsonutil_other_test.cpp
@@ -301,4 +301,104 @@ HWTEST_F(BJsonUtilTest, b_jsonutil_BuildBundleNameIndexInfo_0601, testing::ext::
}
GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildBundleNameIndexInfo_0601";
}
+
+/**
+ * @tc.number: b_jsonutil_BuildInitSessionErrInfo_0701
+ * @tc.name: b_jsonutil_BuildInitSessionErrInfo_0701
+ * @tc.desc: Test function of BuildInitSessionErrInfo interface.
+ * @tc.size: MEDIUM
+ * @tc.type: FUNC
+ * @tc.level Level 0
+ * @tc.require: I6F3GV
+ */
+HWTEST_F(BJsonUtilTest, b_jsonutil_BuildInitSessionErrInfo_0701, testing::ext::TestSize.Level0)
+{
+ GTEST_LOG_(INFO) << "BJsonUtilTest-begin BuildInitSessionErrInfo_0701";
+ try {
+ int32_t userId = 0;
+ std::string callerName;
+ std::string activeTime;
+ int cjson = 0;
+ EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(nullptr));
+ auto result = BJsonUtil::BuildInitSessionErrInfo(userId, callerName, activeTime);
+ EXPECT_EQ(result, "");
+
+ EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
+ EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(nullptr));
+ EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
+ result = BJsonUtil::BuildInitSessionErrInfo(userId, callerName, activeTime);
+ EXPECT_EQ(result, "");
+
+ EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
+ EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
+ EXPECT_CALL(*cJsonMock, cJSON_AddItemToObject(_, _, _)).WillOnce(Return(true));
+ EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(nullptr));
+ EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
+ result = BJsonUtil::BuildInitSessionErrInfo(userId, callerName, activeTime);
+ EXPECT_EQ(result, "");
+
+ EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
+ EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
+ EXPECT_CALL(*cJsonMock, cJSON_AddItemToObject(_, _, _)).WillOnce(Return(true));
+ EXPECT_CALL(*cJsonMock, cJSON_CreateObject())
+ .WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)))
+ .WillOnce(Return(nullptr));
+ EXPECT_CALL(*cJsonMock, cJSON_AddItemToArray(_, _)).WillOnce(Return(true));
+ EXPECT_CALL(*cJsonMock, cJSON_AddStringToObject(_, _, _))
+ .WillOnce(Return(nullptr))
+ .WillOnce(Return(nullptr))
+ .WillOnce(Return(nullptr));
+ EXPECT_CALL(*cJsonMock, cJSON_Print(_)).WillOnce(Return(nullptr));
+ EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
+ result = BJsonUtil::BuildInitSessionErrInfo(userId, callerName, activeTime);
+ EXPECT_EQ(result, "");
+ } catch (...) {
+ EXPECT_TRUE(false);
+ GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred.";
+ }
+ GTEST_LOG_(INFO) << "BJsonUtilTest-end BuildInitSessionErrInfo_0701";
+}
+
+/**
+ * @tc.number: b_jsonutil_WriteToStr_0801
+ * @tc.name: b_jsonutil_WriteToStr_0801
+ * @tc.desc: Test function of WriteToStr interface.
+ * @tc.size: MEDIUM
+ * @tc.type: FUNC
+ * @tc.level Level 0
+ * @tc.require: I6F3GV
+ */
+HWTEST_F(BJsonUtilTest, b_jsonutil_WriteToStr_0801, testing::ext::TestSize.Level0)
+{
+ GTEST_LOG_(INFO) << "BJsonUtilTest-begin WriteToStr_0801";
+ try {
+ std::vector<BJsonUtil::BundleDataSize> bundleDataList;
+ size_t listSize = 0;
+ std::string scanning;
+ std::string jsonStr;
+ int cjson = 0;
+ EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(nullptr));
+ auto result = BJsonUtil::WriteToStr(bundleDataList, listSize, scanning, jsonStr);
+ EXPECT_FALSE(result);
+
+ EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
+ EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(nullptr));
+ EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
+ result = BJsonUtil::WriteToStr(bundleDataList, listSize, scanning, jsonStr);
+ EXPECT_FALSE(result);
+
+ EXPECT_CALL(*cJsonMock, cJSON_CreateObject()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
+ EXPECT_CALL(*cJsonMock, cJSON_CreateArray()).WillOnce(Return(reinterpret_cast<cJSON *>(&cjson)));
+ EXPECT_CALL(*cJsonMock, cJSON_AddItemToObject(_, _, _)).WillOnce(Return(true));
+ EXPECT_CALL(*cJsonMock, cJSON_AddStringToObject(_, _, _)).WillOnce(Return(nullptr));
+ EXPECT_CALL(*cJsonMock, cJSON_Print(_)).WillOnce(Return(nullptr));
+ EXPECT_CALL(*cJsonMock, cJSON_Delete(_)).WillOnce(Return());
+ result = BJsonUtil::WriteToStr(bundleDataList, listSize, scanning, jsonStr);
+ EXPECT_FALSE(result);
+ } catch (...) {
+ EXPECT_TRUE(false);
+ GTEST_LOG_(INFO) << "BJsonUtilTest-an exception occurred.";
+ }
+ GTEST_LOG_(INFO) << "BJsonUtilTest-end WriteToStr_0801";
+}
}
\ No newline at end of file
From cd6a8cc1aaa5bab31fcd09b2a7a3c5270e868766 Mon Sep 17 00:00:00 2001
From: c30054556 <[email protected]>
Date: Mon, 6 Jan 2025 09:56:00 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96getincrefilehandle?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
TicketNo: DTS0000000000000
Description: 优化getincrefilehandle
Team:gitee
Feature or Bugfix:
Binary Source: sync from gitee
PrivateCode(Yes/No):No
------ DO NOT MODIFY, AUTO-GENERATED! ------
Gitee-Issue: #IBA1W6
Time: "2024-12-13T10:08:11.830Z"
PR-Num: 1440
Gitee-PR: https://openharmony.gitee.com/openharmony/filemanagement_app_file_service/pulls/1440
Change-Id: I1734084480294a879c923285e6391f05e126920e
Reviewed-by: g00613291
Approved-by: z00800685
Merged-on: https://open.codehub.huawei.com/OpenSourceCenter_CR/openharmony/filemanagement_app_file_service/-/change_requests/1974
Merged-by: public hisicitools
---
.../native/backup_ext/include/ext_extension.h | 4 +-
.../native/backup_ext/src/ext_extension.cpp | 33 ++--------
.../backup_ext/src/ext_extension_stub.cpp | 10 ++-
.../backup_kit_inner/impl/i_extension.h | 2 +-
.../backup_sa/include/module_ipc/service.h | 2 +
.../include/module_ipc/svc_extension_proxy.h | 2 +-
.../src/module_ipc/service_incremental.cpp | 65 +++++++++++++++++--
.../svc_extension_incremental_proxy.cpp | 11 ++--
.../module_ipc/svc_extension_proxy_mock.cpp | 4 +-
.../backup_impl/include/ext_extension_mock.h | 4 +-
.../backup_ext/ext_extension_stub_test.cpp | 7 +-
.../module_ipc/svc_extension_proxy_test.cpp | 7 +-
12 files changed, 99 insertions(+), 52 deletions(-)
diff --git a/frameworks/native/backup_ext/include/ext_extension.h b/frameworks/native/backup_ext/include/ext_extension.h
index 8170835a..0a63a362 100644
--- a/frameworks/native/backup_ext/include/ext_extension.h
+++ b/frameworks/native/backup_ext/include/ext_extension.h
@@ -48,7 +48,7 @@ public:
ErrCode PublishFile(const std::string &fileName) override;
ErrCode HandleBackup(bool isClearData) override;
ErrCode HandleRestore(bool isClearData) override;
- ErrCode GetIncrementalFileHandle(const std::string &fileName) override;
+ std::tuple<ErrCode, UniqueFd, UniqueFd> GetIncrementalFileHandle(const std::string &fileName) override;
ErrCode PublishIncrementalFile(const std::string &fileName) override;
ErrCode HandleIncrementalBackup(UniqueFd incrementalFd, UniqueFd manifestFd) override;
ErrCode IncrementalOnBackup(bool isClearData) override;
@@ -286,7 +286,7 @@ private:
std::function<void(std::string, int)> ReportErrFileByProc(wptr<BackupExtExtension> obj,
BackupRestoreScenario scenario);
- ErrCode GetIncreFileHandleForNormalVersion(const std::string &fileName);
+ std::tuple<ErrCode, UniqueFd, UniqueFd> GetIncreFileHandleForNormalVersion(const std::string &fileName);
void RestoreOneBigFile(const std::string &path, const ExtManageInfo &item, const bool appendTargetPath);
int DealIncreRestoreBigAndTarFile();
void ClearNoPermissionFiles(TarMap &pkgInfo, vector<std::string> &noPermissionFiles);
diff --git a/frameworks/native/backup_ext/src/ext_extension.cpp b/frameworks/native/backup_ext/src/ext_extension.cpp
index 2b9dc0d8..7a395bef 100644
--- a/frameworks/native/backup_ext/src/ext_extension.cpp
+++ b/frameworks/native/backup_ext/src/ext_extension.cpp
@@ -281,7 +281,7 @@ static string GetReportFileName(const string &fileName)
return reportName;
}
-static ErrCode GetIncreFileHandleForSpecialVersion(const string &fileName)
+static tuple<ErrCode, UniqueFd, UniqueFd> GetIncreFileHandleForSpecialVersion(const string &fileName)
{
ErrCode errCode = ERR_OK;
UniqueFd fd = GetFileHandleForSpecialCloneCloud(fileName);
@@ -301,17 +301,7 @@ static ErrCode GetIncreFileHandleForSpecialVersion(const string &fileName)
HILOGE("Failed to open report file = %{private}s, err = %{public}d", reportName.c_str(), errno);
errCode = errno;
}
-
- auto proxy = ServiceProxy::GetInstance();
- if (proxy == nullptr) {
- HILOGE("Failed to get file handle for special version clone");
- return BError(BError::Codes::EXT_BROKEN_BACKUP_SA).GetCode();
- }
- auto ret = proxy->AppIncrementalFileReady(fileName, move(fd), move(reportFd), errCode);
- if (ret != ERR_OK) {
- HILOGE("Failed to AppIncrementalFileReady %{public}d", ret);
- }
- return ERR_OK;
+ return {errCode, move(fd), move(reportFd)};
}
static ErrCode GetIncrementalFileHandlePath(const string &fileName, const string &bundleName, std::string &tarName)
@@ -336,13 +326,9 @@ static ErrCode GetIncrementalFileHandlePath(const string &fileName, const string
return ERR_OK;
}
-ErrCode BackupExtExtension::GetIncreFileHandleForNormalVersion(const std::string &fileName)
+tuple<ErrCode, UniqueFd, UniqueFd> BackupExtExtension::GetIncreFileHandleForNormalVersion(const std::string &fileName)
{
HILOGI("extension: GetIncrementalFileHandle single to single Name:%{public}s", GetAnonyPath(fileName).c_str());
- auto proxy = ServiceProxy::GetInstance();
- if (proxy == nullptr) {
- throw BError(BError::Codes::EXT_BROKEN_IPC, string("Failed to AGetInstance"));
- }
std::string tarName;
int32_t errCode = ERR_OK;
UniqueFd fd(-1);
@@ -375,15 +361,10 @@ ErrCode BackupExtExtension::GetIncreFileHandleForNormalVersion(const std::string
break;
}
} while (0);
- HILOGI("extension: Will notify AppIncrementalFileReady");
- auto ret = proxy->AppIncrementalFileReady(fileName, move(fd), move(reportFd), errCode);
- if (ret != ERR_OK) {
- HILOGE("Failed to AppIncrementalFileReady %{public}d", ret);
- }
- return ERR_OK;
+ return {errCode, move(fd), move(reportFd)};
}
-ErrCode BackupExtExtension::GetIncrementalFileHandle(const string &fileName)
+tuple<ErrCode, UniqueFd, UniqueFd> BackupExtExtension::GetIncrementalFileHandle(const string &fileName)
{
HITRACE_METER_NAME(HITRACE_TAG_FILEMANAGEMENT, __PRETTY_FUNCTION__);
try {
@@ -403,7 +384,7 @@ ErrCode BackupExtExtension::GetIncrementalFileHandle(const string &fileName)
if (ret != ERR_OK) {
HILOGE("Failed to notify app incre done. err = %{public}d", ret);
}
- return BError(BError::Codes::EXT_INVAL_ARG).GetCode();
+ return {BError(BError::Codes::EXT_INVAL_ARG).GetCode(), UniqueFd(-1), UniqueFd(-1)};
}
if (extension_->SpecialVersionForCloneAndCloud()) {
return GetIncreFileHandleForSpecialVersion(fileName);
@@ -412,7 +393,7 @@ ErrCode BackupExtExtension::GetIncrementalFileHandle(const string &fileName)
} catch (...) {
HILOGE("Failed to get incremental file handle");
DoClear();
- return BError(BError::Codes::EXT_BROKEN_IPC).GetCode();
+ return {BError(BError::Codes::EXT_BROKEN_IPC).GetCode(), UniqueFd(-1), UniqueFd(-1)};
}
}
diff --git a/frameworks/native/backup_ext/src/ext_extension_stub.cpp b/frameworks/native/backup_ext/src/ext_extension_stub.cpp
index 9e7b4353..38f4ce2f 100644
--- a/frameworks/native/backup_ext/src/ext_extension_stub.cpp
+++ b/frameworks/native/backup_ext/src/ext_extension_stub.cpp
@@ -155,8 +155,14 @@ ErrCode ExtExtensionStub::CmdGetIncrementalFileHandle(MessageParcel &data, Messa
return BError(BError::Codes::EXT_INVAL_ARG, "Failed to receive fileName").GetCode();
}
- ErrCode res = GetIncrementalFileHandle(fileName);
- if (!reply.WriteInt32(res)) {
+ auto[errCode, fd, reportFd] = GetIncrementalFileHandle(fileName);
+ if (!reply.WriteInt32(errCode)) {
+ return BError(BError::Codes::EXT_BROKEN_IPC, "Failed to send out the file").GetCode();
+ }
+ if (!reply.WriteFileDescriptor(fd)) {
+ return BError(BError::Codes::EXT_BROKEN_IPC, "Failed to send out the file").GetCode();
+ }
+ if (!reply.WriteFileDescriptor(reportFd)) {
return BError(BError::Codes::EXT_BROKEN_IPC, "Failed to send out the file").GetCode();
}
return BError(BError::Codes::OK);
diff --git a/interfaces/inner_api/native/backup_kit_inner/impl/i_extension.h b/interfaces/inner_api/native/backup_kit_inner/impl/i_extension.h
index a20fb4cd..7ce72f1a 100644
--- a/interfaces/inner_api/native/backup_kit_inner/impl/i_extension.h
+++ b/interfaces/inner_api/native/backup_kit_inner/impl/i_extension.h
@@ -33,7 +33,7 @@ public:
virtual ErrCode HandleBackup(bool isClearData) = 0;
virtual ErrCode PublishFile(const std::string &fileName) = 0;
virtual ErrCode HandleRestore(bool isClearData) = 0;
- virtual ErrCode GetIncrementalFileHandle(const std::string &fileName) = 0;
+ virtual std::tuple<ErrCode, UniqueFd, UniqueFd> GetIncrementalFileHandle(const std::string &fileName) = 0;
virtual ErrCode PublishIncrementalFile(const std::string &fileName) = 0;
virtual ErrCode HandleIncrementalBackup(UniqueFd incrementalFd, UniqueFd manifestFd) = 0;
virtual ErrCode IncrementalOnBackup(bool isClearData) = 0;
diff --git a/services/backup_sa/include/module_ipc/service.h b/services/backup_sa/include/module_ipc/service.h
index ae540163..8c31cd02 100644
--- a/services/backup_sa/include/module_ipc/service.h
+++ b/services/backup_sa/include/module_ipc/service.h
@@ -301,6 +301,8 @@ public:
*/
void RemoveExtensionMutex(const BundleName &bundleName);
void StartRunningTimer(const std::string &bundleName);
+ ErrCode AppIncrementalFileReady(const std::string &bundleName, const std::string &fileName, UniqueFd fd,
+ UniqueFd manifestFd, int32_t errCode);
public:
explicit Service(int32_t saID, bool runOnCreate = false) : SystemAbility(saID, runOnCreate)
{
diff --git a/services/backup_sa/include/module_ipc/svc_extension_proxy.h b/services/backup_sa/include/module_ipc/svc_extension_proxy.h
index 4e5b9932..dd38f936 100644
--- a/services/backup_sa/include/module_ipc/svc_extension_proxy.h
+++ b/services/backup_sa/include/module_ipc/svc_extension_proxy.h
@@ -28,7 +28,7 @@ public:
ErrCode HandleBackup(bool isClearData) override;
ErrCode PublishFile(const std::string &fileName) override;
ErrCode HandleRestore(bool isClearData) override;
- ErrCode GetIncrementalFileHandle(const std::string &fileName) override;
+ std::tuple<ErrCode, UniqueFd, UniqueFd> GetIncrementalFileHandle(const std::string &fileName) override;
ErrCode PublishIncrementalFile(const std::string &fileName) override;
ErrCode HandleIncrementalBackup(UniqueFd incrementalFd, UniqueFd manifestFd) override;
ErrCode IncrementalOnBackup(bool isClearData) override;
diff --git a/services/backup_sa/src/module_ipc/service_incremental.cpp b/services/backup_sa/src/module_ipc/service_incremental.cpp
index 7538ba09..ce85c3be 100644
--- a/services/backup_sa/src/module_ipc/service_incremental.cpp
+++ b/services/backup_sa/src/module_ipc/service_incremental.cpp
@@ -481,6 +481,57 @@ ErrCode Service::PublishSAIncrementalFile(const BFileInfo &fileInfo, UniqueFd fd
return saConnection->CallRestoreSA(move(fd));
}
+ErrCode Service::AppIncrementalFileReady(const std::string &bundleName, const std::string &fileName, UniqueFd fd,
+ UniqueFd manifestFd, int32_t errCode)
+{
+ HITRACE_METER_NAME(HITRACE_TAG_FILEMANAGEMENT, __PRETTY_FUNCTION__);
+ try {
+ if (session_->GetScenario() == IServiceReverse::Scenario::RESTORE) {
+ session_->GetServiceReverseProxy()->IncrementalRestoreOnFileReady(bundleName, fileName, move(fd),
+ move(manifestFd), errCode);
+ FileReadyRadarReport(bundleName, fileName, errCode, IServiceReverse::Scenario::RESTORE);
+ return BError(BError::Codes::OK);
+ }
+ if (fileName == BConstants::EXT_BACKUP_MANAGE) {
+ fd = session_->OnBundleExtManageInfo(bundleName, move(fd));
+ }
+ HILOGD("reverse: Will notify IncrementalBackupOnFileReady");
+ session_->GetServiceReverseProxy()->IncrementalBackupOnFileReady(bundleName, fileName, move(fd),
+ move(manifestFd), errCode);
+ FileReadyRadarReport(bundleName, fileName, errCode, IServiceReverse::Scenario::BACKUP);
+ if (session_->OnBundleFileReady(bundleName, fileName)) {
+ auto backUpConnection = session_->GetExtConnection(bundleName);
+ auto proxy = backUpConnection->GetBackupExtProxy();
+ if (!proxy) {
+ throw BError(BError::Codes::SA_INVAL_ARG, "Extension backup Proxy is empty");
+ }
+ // 通知extension清空缓存
+ proxy->HandleClear();
+ // 清除Timer
+ session_->StopFwkTimer(bundleName);
+ session_->StopExtTimer(bundleName);
+ // 通知TOOL 备份完成
+ HILOGI("reverse: Will notify IncrementalBackupOnBundleFinished");
+ session_->GetServiceReverseProxy()->IncrementalBackupOnBundleFinished(BError(BError::Codes::OK),
+ bundleName);
+ BundleEndRadarReport(bundleName, BError(BError::Codes::OK), IServiceReverse::Scenario::BACKUP);
+ // 断开extension
+ backUpConnection->DisconnectBackupExtAbility();
+ ClearSessionAndSchedInfo(bundleName);
+ }
+ OnAllBundlesFinished(BError(BError::Codes::OK));
+ return BError(BError::Codes::OK);
+ } catch (const BError &e) {
+ return e.GetCode(); // 任意异常产生,终止监听该任务
+ } catch (const exception &e) {
+ HILOGI("Catched an unexpected low-level exception %{public}s", e.what());
+ return EPERM;
+ } catch (...) {
+ HILOGI("Unexpected exception");
+ return EPERM;
+ }
+}
+
ErrCode Service::AppIncrementalFileReady(const std::string &fileName, UniqueFd fd, UniqueFd manifestFd, int32_t errCode)
{
HITRACE_METER_NAME(HITRACE_TAG_FILEMANAGEMENT, __PRETTY_FUNCTION__);
@@ -599,12 +650,13 @@ ErrCode Service::GetIncrementalFileHandle(const std::string &bundleName, const s
HILOGE("GetIncrementalFileHandle error, Extension backup Proxy is empty");
return BError(BError::Codes::SA_INVAL_ARG);
}
- ErrCode res = proxy->GetIncrementalFileHandle(fileName);
- if (res != ERR_OK) {
- HILOGE("Failed to extension file handle");
+ auto[errCode, fd, reportFd] = proxy->GetIncrementalFileHandle(fileName);
+ auto err = AppIncrementalFileReady(bundleName, fileName, move(fd), move(reportFd), errCode);
+ if (err != ERR_OK) {
+ HILOGE("Failed to send file handle");
AppRadar::Info info (bundleName, "", "");
AppRadar::GetInstance().RecordRestoreFuncRes(info, "Service::GetIncrementalFileHandle",
- GetUserIdDefault(), BizStageRestore::BIZ_STAGE_GET_FILE_HANDLE_FAIL, res);
+ GetUserIdDefault(), BizStageRestore::BIZ_STAGE_GET_FILE_HANDLE_FAIL, err);
}
} else {
SvcRestoreDepsManager::GetInstance().UpdateToRestoreBundleMap(bundleName, fileName);
@@ -650,9 +702,10 @@ bool Service::IncrementalBackup(const string &bundleName)
BundleBeginRadarReport(bundleName, ret, IServiceReverse::Scenario::RESTORE);
auto fileNameVec = session_->GetExtFileNameRequest(bundleName);
for (auto &fileName : fileNameVec) {
- ret = proxy->GetIncrementalFileHandle(fileName);
+ auto[errCode, fd, reportFd] = proxy->GetIncrementalFileHandle(fileName);
+ ret = AppIncrementalFileReady(bundleName, fileName, move(fd), move(reportFd), errCode);
if (ret) {
- HILOGE("Failed to extension file handle %{public}s", fileName.c_str());
+ HILOGE("Failed to send file handle %{public}s", GetAnonyString(fileName).c_str());
}
}
return true;
diff --git a/services/backup_sa/src/module_ipc/svc_extension_incremental_proxy.cpp b/services/backup_sa/src/module_ipc/svc_extension_incremental_proxy.cpp
index 03dbb4fe..c29b0e72 100644
--- a/services/backup_sa/src/module_ipc/svc_extension_incremental_proxy.cpp
+++ b/services/backup_sa/src/module_ipc/svc_extension_incremental_proxy.cpp
@@ -25,7 +25,7 @@
namespace OHOS::FileManagement::Backup {
using namespace std;
-ErrCode SvcExtensionProxy::GetIncrementalFileHandle(const string &fileName)
+std::tuple<ErrCode, UniqueFd, UniqueFd> SvcExtensionProxy::GetIncrementalFileHandle(const string &fileName)
{
HITRACE_METER_NAME(HITRACE_TAG_FILEMANAGEMENT, __PRETTY_FUNCTION__);
HILOGD("Start");
@@ -35,7 +35,7 @@ ErrCode SvcExtensionProxy::GetIncrementalFileHandle(const string &fileName)
if (!data.WriteString(fileName)) {
BError(BError::Codes::SDK_INVAL_ARG, "Failed to send the fileName");
- return ErrCode(EPERM);
+ return {ErrCode(EPERM), UniqueFd(-1), UniqueFd(-1)};
}
MessageParcel reply;
@@ -44,11 +44,14 @@ ErrCode SvcExtensionProxy::GetIncrementalFileHandle(const string &fileName)
data, reply, option);
if (ret != NO_ERROR) {
HILOGE("Received error %{public}d when doing IPC", ret);
- return ErrCode(ret);
+ return {ErrCode(ret), UniqueFd(-1), UniqueFd(-1)};
}
HILOGD("Successful");
- return reply.ReadInt32();
+ ErrCode err(reply.ReadInt32());
+ UniqueFd fd(reply.ReadFileDescriptor());
+ UniqueFd reportFd(reply.ReadFileDescriptor());
+ return {err, move(fd), move(reportFd)};
}
ErrCode SvcExtensionProxy::PublishIncrementalFile(const string &fileName)
diff --git a/tests/mock/module_ipc/svc_extension_proxy_mock.cpp b/tests/mock/module_ipc/svc_extension_proxy_mock.cpp
index bb000e09..a2534d89 100644
--- a/tests/mock/module_ipc/svc_extension_proxy_mock.cpp
+++ b/tests/mock/module_ipc/svc_extension_proxy_mock.cpp
@@ -48,9 +48,9 @@ ErrCode SvcExtensionProxy::GetBackupInfo(std::string &result)
return 0;
}
-ErrCode SvcExtensionProxy::GetIncrementalFileHandle(const string &fileName)
+std::tuple<ErrCode, UniqueFd, UniqueFd> SvcExtensionProxy::GetIncrementalFileHandle(const string &fileName)
{
- return 0;
+ return {0, UniqueFd(-1), UniqueFd(-1)};
}
ErrCode SvcExtensionProxy::PublishIncrementalFile(const string &fileName)
diff --git a/tests/unittests/backup_api/backup_impl/include/ext_extension_mock.h b/tests/unittests/backup_api/backup_impl/include/ext_extension_mock.h
index b5070b41..3399bc31 100644
--- a/tests/unittests/backup_api/backup_impl/include/ext_extension_mock.h
+++ b/tests/unittests/backup_api/backup_impl/include/ext_extension_mock.h
@@ -104,9 +104,9 @@ public:
return BError(BError::Codes::OK);
};
- ErrCode GetIncrementalFileHandle(const std::string &fileName) override
+ std::tuple<ErrCode, UniqueFd, UniqueFd> GetIncrementalFileHandle(const std::string &fileName) override
{
- return BError(BError::Codes::OK);
+ return {BError(BError::Codes::OK), UniqueFd(-1), UniqueFd(-1)};
};
ErrCode PublishIncrementalFile(const std::string &fileName) override
diff --git a/tests/unittests/backup_ext/ext_extension_stub_test.cpp b/tests/unittests/backup_ext/ext_extension_stub_test.cpp
index 8755506f..99a8bd55 100644
--- a/tests/unittests/backup_ext/ext_extension_stub_test.cpp
+++ b/tests/unittests/backup_ext/ext_extension_stub_test.cpp
@@ -31,7 +31,7 @@ public:
MOCK_METHOD(ErrCode, HandleBackup, (bool isClearData));
MOCK_METHOD(ErrCode, PublishFile, (const std::string &fileName));
MOCK_METHOD(ErrCode, HandleRestore, (bool isClearData));
- MOCK_METHOD(ErrCode, GetIncrementalFileHandle, (const std::string &fileName));
+ MOCK_METHOD((std::tuple<ErrCode, UniqueFd, UniqueFd>), GetIncrementalFileHandle, (const std::string &fileName));
MOCK_METHOD(ErrCode, PublishIncrementalFile, (const std::string &fileName));
MOCK_METHOD(ErrCode, HandleIncrementalBackup, (UniqueFd incrementalFd, UniqueFd manifestFd));
MOCK_METHOD(ErrCode, IncrementalOnBackup, (bool isClearData));
@@ -311,14 +311,15 @@ HWTEST_F(ExtExtensionStubTest, SUB_backup_ext_ExtExtensionStub_CmdGetIncremental
EXPECT_EQ(err, BError(BError::Codes::EXT_INVAL_ARG));
EXPECT_CALL(*messageParcelMock, ReadString(_)).WillOnce(Return(true));
- EXPECT_CALL(*stub, GetIncrementalFileHandle(_)).WillOnce(Return(0));
+ EXPECT_CALL(*stub, GetIncrementalFileHandle(_)).WillOnce(Return(make_tuple(0, UniqueFd(-1), UniqueFd(-1))));
EXPECT_CALL(*messageParcelMock, WriteInt32(_)).WillOnce(Return(false));
err = stub->CmdGetIncrementalFileHandle(data, reply);
EXPECT_EQ(err, BError(BError::Codes::EXT_BROKEN_IPC));
EXPECT_CALL(*messageParcelMock, ReadString(_)).WillOnce(Return(true));
- EXPECT_CALL(*stub, GetIncrementalFileHandle(_)).WillOnce(Return(0));
+ EXPECT_CALL(*stub, GetIncrementalFileHandle(_)).WillOnce(Return(make_tuple(0, UniqueFd(-1), UniqueFd(-1))));
EXPECT_CALL(*messageParcelMock, WriteInt32(_)).WillOnce(Return(true));
+ EXPECT_CALL(*messageParcelMock, WriteFileDescriptor(_)).WillOnce(Return(true)).WillOnce(Return(true));
err = stub->CmdGetIncrementalFileHandle(data, reply);
EXPECT_EQ(err, BError(BError::Codes::OK));
} catch (...) {
diff --git a/tests/unittests/backup_sa/module_ipc/svc_extension_proxy_test.cpp b/tests/unittests/backup_sa/module_ipc/svc_extension_proxy_test.cpp
index aa55e0dc..572c43f8 100644
--- a/tests/unittests/backup_sa/module_ipc/svc_extension_proxy_test.cpp
+++ b/tests/unittests/backup_sa/module_ipc/svc_extension_proxy_test.cpp
@@ -368,20 +368,21 @@ HWTEST_F(SvcExtensionProxyTest, SUB_Ext_Extension_proxy_GetIncrementalFileHandle
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(false));
EXPECT_TRUE(proxy_ != nullptr);
- ErrCode ret = proxy_->GetIncrementalFileHandle(fileName);
+ auto [ret, fd, reportFd] = proxy_->GetIncrementalFileHandle(fileName);
EXPECT_EQ(ret, ErrCode(EPERM));
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
EXPECT_CALL(*mock_, SendRequest(_, _, _, _)).WillOnce(Return(EPERM));
- ret = proxy_->GetIncrementalFileHandle(fileName);
+ tie(ret, fd, reportFd) = proxy_->GetIncrementalFileHandle(fileName);
EXPECT_EQ(ret, ErrCode(EPERM));
EXPECT_CALL(*messageParcelMock_, WriteInterfaceToken(_)).WillOnce(Return(true));
EXPECT_CALL(*messageParcelMock_, WriteString(_)).WillOnce(Return(true));
EXPECT_CALL(*mock_, SendRequest(_, _, _, _)).WillOnce(Return(NO_ERROR));
EXPECT_CALL(*messageParcelMock_, ReadInt32()).WillOnce(Return(NO_ERROR));
- ret = proxy_->GetIncrementalFileHandle(fileName);
+ EXPECT_CALL(*messageParcelMock_, ReadFileDescriptor()).WillOnce(Return(-1)).WillOnce(Return(-1));
+ tie(ret, fd, reportFd) = proxy_->GetIncrementalFileHandle(fileName);
EXPECT_EQ(ret, ErrCode(BError::Codes::OK));
} catch (...) {
EXPECT_TRUE(false);
--
2.45.2.huawei.7
diff --git a/interfaces/kits/js/backup/session_backup_n_exporter.cpp b/interfaces/kits/js/backup/session_backup_n_exporter.cpp
index fcb482f7..06afd433 100644
--- a/interfaces/kits/js/backup/session_backup_n_exporter.cpp
+++ b/interfaces/kits/js/backup/session_backup_n_exporter.cpp
@@ -39,10 +39,6 @@ struct BackupEntity {
static void OnFileReady(weak_ptr<GeneralCallbacks> pCallbacks, const BFileInfo &fileInfo, UniqueFd fd, int sysErrno)
{
- if (pCallbacks.expired()) {
- HILOGI("callbacks is unbound");
- return;
- }
auto callbacks = pCallbacks.lock();
if (!callbacks) {
HILOGI("callback function onFileReady has already been released");
@@ -53,15 +49,16 @@ static void OnFileReady(weak_ptr<GeneralCallbacks> pCallbacks, const BFileInfo &
return;
}
ErrCode errCode = BError::GetCodeByErrno(sysErrno);
- std::string errMsg = "system errno: " + to_string(sysErrno);
- std::tuple<uint32_t, std::string> errInfo = std::make_tuple(errCode, errMsg);
-
+ std::tuple<uint32_t, std::string> errInfo = std::make_tuple(errCode, "system errno: " + to_string(sysErrno));
+ HILOGI("callback function backup onFileReady begin errCode: %{public}d, bundle: %{public}s, file: %{public}s",
+ std::get<0>(errInfo), fileInfo.owner.c_str(), GetAnonyPath(fileInfo.fileName).c_str());
auto cbCompl = [bundleName {fileInfo.owner}, fileName {fileInfo.fileName},
fd {make_shared<UniqueFd>(fd.Release())}, errInfo](napi_env env, NError err) -> NVal {
if (err) {
return {env, err.GetNapiErr(env)};
}
- HILOGI("callback function backup onFileReady cbCompl errcode: %{public}d", std::get<0>(errInfo));
+ HILOGI("callback function backup onFileReady errCode: %{public}d, bundle: %{public}s, file: %{public}s",
+ std::get<0>(errInfo), bundleName.c_str(), GetAnonyPath(fileName).c_str());
NVal obj;
ErrParam errorParam = [ errInfo ]() {
return errInfo;
@@ -82,6 +79,8 @@ static void OnFileReady(weak_ptr<GeneralCallbacks> pCallbacks, const BFileInfo &
NVal::DeclareNapiProperty(BConstants::URI.c_str(), NVal::CreateUTF8String(env, fileName).val_),
NVal::DeclareNapiProperty(BConstants::FD.c_str(), NVal::CreateInt32(env, fd->Release()).val_)});
}
+ HILOGI("callback function backup onFileReady end errCode: %{public}d, bundle: %{public}s, file: %{public}s",
+ std::get<0>(errInfo), bundleName.c_str(), GetAnonyPath(fileName).c_str());
return {obj};
};
diff --git a/interfaces/kits/js/backup/session_incremental_backup_n_exporter.cpp b/interfaces/kits/js/backup/session_incremental_backup_n_exporter.cpp
index a983e927..793d2697 100644
--- a/interfaces/kits/js/backup/session_incremental_backup_n_exporter.cpp
+++ b/interfaces/kits/js/backup/session_incremental_backup_n_exporter.cpp
@@ -42,10 +42,6 @@ struct BackupEntity {
static void OnFileReady(weak_ptr<GeneralCallbacks> pCallbacks, const BFileInfo &fileInfo, UniqueFd fd,
UniqueFd manifestFd, int sysErrno)
{
- if (pCallbacks.expired()) {
- HILOGI("callbacks is unbound");
- return;
- }
auto callbacks = pCallbacks.lock();
if (!callbacks) {
HILOGI("callback function onFileReady has already been released");
@@ -56,9 +52,9 @@ static void OnFileReady(weak_ptr<GeneralCallbacks> pCallbacks, const BFileInfo &
return;
}
ErrCode errCode = BError::GetCodeByErrno(sysErrno);
- std::string errMsg = "system errno: " + to_string(sysErrno);
- std::tuple<uint32_t, std::string> errInfo = std::make_tuple(errCode, errMsg);
-
+ std::tuple<uint32_t, std::string> errInfo = std::make_tuple(errCode, "system errno: " + to_string(sysErrno));
+ HILOGI("callback function incre backup onFileReady begin errCode: %{public}d, bundle: %{public}s, file: %{public}s",
+ std::get<0>(errInfo), fileInfo.owner.c_str(), GetAnonyPath(fileInfo.fileName).c_str());
auto cbCompl = [bundleName {fileInfo.owner}, fileName {fileInfo.fileName},
fd {make_shared<UniqueFd>(fd.Release())},
manifestFd {make_shared<UniqueFd>(manifestFd.Release())},
@@ -66,7 +62,8 @@ static void OnFileReady(weak_ptr<GeneralCallbacks> pCallbacks, const BFileInfo &
if (err) {
return {env, err.GetNapiErr(env)};
}
- HILOGI("callback function incremental backup onFileReady cbCompl errcode: %{public}d", std::get<0>(errInfo));
+ HILOGI("callback function incre backup onFileReady errCode: %{public}d, bundle: %{public}s, file: %{public}s",
+ std::get<0>(errInfo), bundleName.c_str(), GetAnonyPath(fileName).c_str());
NVal obj;
ErrParam errorParam = [ errInfo ]() {
return errInfo;
@@ -88,6 +85,8 @@ static void OnFileReady(weak_ptr<GeneralCallbacks> pCallbacks, const BFileInfo &
NVal::DeclareNapiProperty(BConstants::MANIFEST_FD.c_str(),
NVal::CreateInt32(env, manifestFd->Release()).val_)});
}
+ HILOGI("callback function incre backup onFileReady end errCode:%{public}d, bundle:%{public}s, file:%{public}s",
+ std::get<0>(errInfo), bundleName.c_str(), GetAnonyPath(fileName).c_str());
return {obj};
};
diff --git a/interfaces/kits/js/backup/session_restore_n_exporter.cpp b/interfaces/kits/js/backup/session_restore_n_exporter.cpp
index b39a7c26..7d802412 100644
--- a/interfaces/kits/js/backup/session_restore_n_exporter.cpp
+++ b/interfaces/kits/js/backup/session_restore_n_exporter.cpp
@@ -44,10 +44,6 @@ struct RestoreEntity {
static void OnFileReadySheet(weak_ptr<GeneralCallbacks> pCallbacks, const BFileInfo &fileInfo,
UniqueFd fd, UniqueFd manifestFd, int32_t sysErrno)
{
- if (pCallbacks.expired()) {
- HILOGI("callbacks is unbound");
- return;
- }
auto callbacks = pCallbacks.lock();
if (!callbacks) {
HILOGI("callback function onFileReady has already been released");
@@ -58,9 +54,9 @@ static void OnFileReadySheet(weak_ptr<GeneralCallbacks> pCallbacks, const BFileI
return;
}
ErrCode errCode = BError::GetCodeByErrno(sysErrno);
- std::string errMsg = "system errno: " + to_string(sysErrno);
- std::tuple<uint32_t, std::string> errInfo = std::make_tuple(errCode, errMsg);
-
+ std::tuple<uint32_t, std::string> errInfo = std::make_tuple(errCode, "system errno: " + to_string(sysErrno));
+ HILOGI("callback function restore onFileReadySheet begin errCode: %{public}d, bundle: %{public}s, file: %{public}s",
+ std::get<0>(errInfo), fileInfo.owner.c_str(), GetAnonyPath(fileInfo.fileName).c_str());
auto cbCompl = [bundleName {fileInfo.owner}, fileName {fileInfo.fileName},
fd {make_shared<UniqueFd>(fd.Release())},
manifestFd {make_shared<UniqueFd>(manifestFd.Release())},
@@ -68,7 +64,8 @@ static void OnFileReadySheet(weak_ptr<GeneralCallbacks> pCallbacks, const BFileI
if (err) {
return {env, err.GetNapiErr(env)};
}
- HILOGI("callback function restore OnFileReadySheet errCode: %{public}d", std::get<0>(errInfo));
+ HILOGI("callback function restore OnFileReadySheet errCode: %{public}d, bundle: %{public}s, file: %{public}s",
+ std::get<0>(errInfo), bundleName.c_str(), GetAnonyPath(fileName).c_str());
NVal obj;
ErrParam errorParam = [ errInfo ]() {
return errInfo;
@@ -90,6 +87,8 @@ static void OnFileReadySheet(weak_ptr<GeneralCallbacks> pCallbacks, const BFileI
NVal::DeclareNapiProperty(BConstants::MANIFEST_FD.c_str(),
NVal::CreateInt32(env, manifestFd->Release()).val_)});
}
+ HILOGI("callback function restore onFileReadySheet end errCode:%{public}d, bundle:%{public}s, file:%{public}s",
+ std::get<0>(errInfo), bundleName.c_str(), GetAnonyPath(fileName).c_str());
return {obj};
};
# Copyright (c) 2022-2023 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//build/ohos.gni")
group("tgt_backup_extension") {
deps = [
"frameworks/native/backup_ext:backup_extension_ability_native",
"interfaces/api/js/napi/backup_ext:backupextensionability_napi",
"interfaces/api/js/napi/backup_ext_context:backupextensioncontext_napi",
]
}
group("tgt_backup_kit_inner") {
deps = [ "interfaces/inner_api/native/backup_kit_inner" ]
}
group("tgt_backup_sa") {
deps = [
"services:backup_para_etc",
"services:backup_sa_etc",
"services:backup_sa_profile",
"services/backup_sa",
]
}
group("tgt_backup_tests") {
testonly = true
deps = [
"tests/moduletests",
"tests/unittests",
]
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ExtraMeteorP/filemanagement_app_file_service.git
[email protected]:ExtraMeteorP/filemanagement_app_file_service.git
ExtraMeteorP
filemanagement_app_file_service
filemanagement_app_file_service
master

搜索帮助