From 108335008ddc085b098c8e088970233d50185a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?f=E6=88=BF=E8=8A=B7=E4=BB=AA?= Date: Sat, 16 Aug 2025 16:43:53 +0800 Subject: [PATCH] file version optimization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: f房芷仪 --- .../include/clouddisk_rdbstore.h | 3 +- .../src/clouddisk_rdbstore.cpp | 30 ++- .../src/cloud_disk/file_operations_cloud.cpp | 14 +- .../cloud_disk/file_operations_cloud_test.cpp | 58 ++++++ .../mock/clouddisk_rdbstore_mock.cpp | 6 +- .../clouddisk_rdbstore_test.cpp | 189 +++++++++++++----- 6 files changed, 235 insertions(+), 65 deletions(-) diff --git a/services/clouddisk_database/include/clouddisk_rdbstore.h b/services/clouddisk_database/include/clouddisk_rdbstore.h index 189996508..87dc6b8a9 100644 --- a/services/clouddisk_database/include/clouddisk_rdbstore.h +++ b/services/clouddisk_database/include/clouddisk_rdbstore.h @@ -55,7 +55,7 @@ public: int32_t SetXAttr(const std::string &cloudId, const std::string &key, const std::string &value, const std::string &name = "", const std::string &parentCloudId = ""); int32_t Rename(const std::string &oldParentCloudId, const std::string &oldFileName, - const std::string &newParentCloudId, const std::string &newFileName); + const std::string &newParentCloudId, const std::string &newFileName, bool newFileNoNeedUpload); int32_t Unlink(const std::string &cloudId, const int32_t &noUpload); int32_t RecycleSetXattr(const std::string &name, const std::string &parentCloudId, const std::string &cloudId, const std::string &value); @@ -96,6 +96,7 @@ public: const int userId, std::string destPath); int32_t CreateDentryFile(MetaBase metaBase, std::string destParentCloudId); int32_t GetSrcCloudId(const std::string &cloudId, std::string &srcCloudId); + void TriggerSyncForWrite(const std::string &fileName, const std::string &parentCloudId); int32_t UpdateTHMStatus(std::shared_ptr metaFile, MetaBase &metabase, int32_t status); void DatabaseRestore(); diff --git a/services/clouddisk_database/src/clouddisk_rdbstore.cpp b/services/clouddisk_database/src/clouddisk_rdbstore.cpp index 0698210ea..4e115425e 100644 --- a/services/clouddisk_database/src/clouddisk_rdbstore.cpp +++ b/services/clouddisk_database/src/clouddisk_rdbstore.cpp @@ -592,6 +592,19 @@ static int32_t WriteUpdateDentry(MetaBase &metaBase, uint32_t userId, const std: return ret; } +void CloudDiskRdbStore::TriggerSyncForWrite(const std::string &fileName, const std::string &parentCloudId) +{ + MetaBase metaBase(fileName); + auto metaFile = MetaFileMgr::GetInstance().GetCloudDiskMetaFile(userId_, bundleName_, parentCloudId); + int32_t ret = metaFile->DoLookup(metaBase); + if (ret != E_OK) { + LOGE("lookup dentry failed, ret = %{public}d", ret); + } + if (metaBase.noUpload == NEED_UPLOAD) { + CloudDiskSyncHelper::GetInstance().RegisterTriggerSync(bundleName_, userId_); + } +} + int32_t CloudDiskRdbStore::Write(const std::string &fileName, const std::string &parentCloudId, const std::string &cloudId) { @@ -638,7 +651,7 @@ int32_t CloudDiskRdbStore::Write(const std::string &fileName, const std::string return E_RDB; } rdbTransaction.Finish(); - CloudDiskSyncHelper::GetInstance().RegisterTriggerSync(bundleName_, userId_); + TriggerSyncForWrite(fileName, parentCloudId); return E_OK; } @@ -1495,7 +1508,7 @@ static void HandleRenameValue(ValuesBucket &rename, int32_t position, const Cach } int32_t CloudDiskRdbStore::Rename(const std::string &oldParentCloudId, const std::string &oldFileName, - const std::string &newParentCloudId, const std::string &newFileName) + const std::string &newParentCloudId, const std::string &newFileName, bool newFileNoNeedUpload) { int32_t ret = CheckName(newFileName); if (ret != E_OK) { @@ -1513,13 +1526,15 @@ int32_t CloudDiskRdbStore::Rename(const std::string &oldParentCloudId, const std LOGE("lookup dentry failed, ret = %{public}d", ret); return EINVAL; } + uint8_t oldFileNoNeedUpload = metaBase.noUpload; + metaBase.noUpload = (newFileNoNeedUpload == NEED_UPLOAD)? NEED_UPLOAD : NO_UPLOAD; ret = CheckNameForSpace(newFileName, S_ISDIR(metaBase.mode)); if (ret != E_OK) { return ret; } ValuesBucket rename; - CacheNode newNode = {.parentCloudId = newParentCloudId, .fileName = newFileName}; - CacheNode oldNode = {.parentCloudId = oldParentCloudId, .fileName = oldFileName}; + CacheNode newNode = {.cloudId = metaBase.cloudId, .parentCloudId = newParentCloudId, .fileName = newFileName}; + CacheNode oldNode = {.cloudId = metaBase.cloudId, .parentCloudId = oldParentCloudId, .fileName = oldFileName}; HandleRenameValue(rename, metaBase.position, oldNode, newNode); vector bindArgs; bindArgs.emplace_back(metaBase.cloudId); @@ -1529,14 +1544,17 @@ int32_t CloudDiskRdbStore::Rename(const std::string &oldParentCloudId, const std LOGE("rename dentry failed, ret = %{public}d", ret); return EINVAL; } - function rdbUpdate = [this, rename, bindArgs] { + function rdbUpdate = + [this, rename, bindArgs, oldFileNoNeedUpload, newFileNoNeedUpload, oldFileName, newFileName] { int32_t changedRows = -1; int32_t ret = rdbStore_ ->Update(changedRows, FileColumn::FILES_TABLE, rename, FileColumn::CLOUD_ID + " = ?", bindArgs); if (ret != E_OK) { LOGE("rename file fail, ret %{public}d", ret); } - CloudDiskSyncHelper::GetInstance().RegisterTriggerSync(bundleName_, userId_); + if ((oldFileNoNeedUpload == NEED_UPLOAD) || (newFileNoNeedUpload == NEED_UPLOAD)) { + CloudDiskSyncHelper::GetInstance().RegisterTriggerSync(bundleName_, userId_); + } }; ffrt::thread(rdbUpdate).detach(); return E_OK; diff --git a/services/cloudfiledaemon/src/cloud_disk/file_operations_cloud.cpp b/services/cloudfiledaemon/src/cloud_disk/file_operations_cloud.cpp index 7440e3851..b515576d6 100644 --- a/services/cloudfiledaemon/src/cloud_disk/file_operations_cloud.cpp +++ b/services/cloudfiledaemon/src/cloud_disk/file_operations_cloud.cpp @@ -1632,10 +1632,18 @@ void FileOperationsCloud::Rename(fuse_req_t req, fuse_ino_t parent, const char * return; } + bool noNeedUpload = false; + if (newParentInode->cloudId != ROOT_CLOUD_ID) { + int32_t err = GetParentUpload(newParentInode, data, noNeedUpload); + if (err != 0) { + LOGE("Failed to get parent no upload"); + return (void) fuse_reply_err(req, err); + } + } + DatabaseManager &databaseManager = DatabaseManager::GetInstance(); - shared_ptr rdbStore = databaseManager.GetRdbStore(parentInode->bundleName, - data->userId); - int32_t err = rdbStore->Rename(parentInode->cloudId, name, newParentInode->cloudId, newName); + shared_ptr rdbStore = databaseManager.GetRdbStore(parentInode->bundleName, data->userId); + int32_t err = rdbStore->Rename(parentInode->cloudId, name, newParentInode->cloudId, newName, noNeedUpload); if (err != 0) { CLOUD_FILE_FAULT_REPORT(CloudFile::CloudFileFaultInfo{parentInode->bundleName, CloudFile::FaultOperation::RENAME, CloudFile::FaultType::DATABASE, err, diff --git a/test/unittests/cloud_disk/file_operations_cloud_test.cpp b/test/unittests/cloud_disk/file_operations_cloud_test.cpp index ac3ba97cc..c4c1880f7 100644 --- a/test/unittests/cloud_disk/file_operations_cloud_test.cpp +++ b/test/unittests/cloud_disk/file_operations_cloud_test.cpp @@ -2007,6 +2007,64 @@ HWTEST_F(FileOperationsCloudTest, RenameTest004, TestSize.Level1) GTEST_LOG_(INFO) << "RenameTest004 End"; } +/** + * @tc.name: RenameTest005 + * @tc.desc: Verify the Rename function + * @tc.type: FUNC + * @tc.require: issuesI91IOG + */ +HWTEST_F(FileOperationsCloudTest, RenameTest005, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "RenameTest005 Start"; + try { + CloudDiskFuseData data; + fuse_ino_t parent = 2; + fuse_ino_t newParent = 1; + fuse_req_t req = nullptr; + const char *name = "test"; + const char *newName = "test"; + unsigned int flags = 0; + + EXPECT_CALL(*insMock, fuse_req_userdata(_)).WillOnce(Return(reinterpret_cast(&data))); + EXPECT_CALL(*insMock, fuse_reply_err(_, _)).WillOnce(Return(E_OK)); + fileOperationsCloud_->Rename(req, parent, name, newParent, newName, flags); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "RenameTest005 ERROR"; + } + GTEST_LOG_(INFO) << "RenameTest005 End"; +} + +/** + * @tc.name: RenameTest006 + * @tc.desc: Verify the Rename function + * @tc.type: FUNC + * @tc.require: issuesI91IOG + */ +HWTEST_F(FileOperationsCloudTest, RenameTest006, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "RenameTest006 Start"; + try { + CloudDiskFuseData data; + fuse_ino_t parent = 2; + fuse_ino_t newParent = 3; + fuse_req_t req = nullptr; + const char *name = "test"; + const char *newName = "test"; + unsigned int flags = 0; + + EXPECT_CALL(*insMock, fuse_req_userdata(_)).WillOnce(Return(reinterpret_cast(&data))); + EXPECT_CALL(*insMock, fuse_reply_err(_, _)).WillOnce(Return(E_OK)); + fileOperationsCloud_->Rename(req, parent, name, newParent, newName, flags); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "RenameTest006 ERROR"; + } + GTEST_LOG_(INFO) << "RenameTest006 End"; +} + /** * @tc.name: ReadTest001 * @tc.desc: Verify the ReadDir function diff --git a/test/unittests/cloud_disk/mock/clouddisk_rdbstore_mock.cpp b/test/unittests/cloud_disk/mock/clouddisk_rdbstore_mock.cpp index b360365a7..498f0b82e 100644 --- a/test/unittests/cloud_disk/mock/clouddisk_rdbstore_mock.cpp +++ b/test/unittests/cloud_disk/mock/clouddisk_rdbstore_mock.cpp @@ -96,6 +96,10 @@ int32_t CloudDiskRdbStore::MkDir(const std::string &cloudId, const std::string & return E_OK; } + void CloudDiskRdbStore::TriggerSyncForWrite(const std::string &fileName, const std::string &parentCloudId) +{ +} + int32_t CloudDiskRdbStore::Write(const std::string &fileName, const std::string &parentCloudId, const std::string &cloudId) { @@ -183,7 +187,7 @@ int32_t CloudDiskRdbStore::SetXAttr(const std::string &cloudId, const std::strin } int32_t CloudDiskRdbStore::Rename(const std::string &oldParentCloudId, const std::string &oldFileName, - const std::string &newParentCloudId, const std::string &newFileName) + const std::string &newParentCloudId, const std::string &newFileName, bool newFileNoNeedUpload) { if (oldFileName == "mock" || newFileName == "mock") { return 1; diff --git a/test/unittests/clouddisk_database/clouddisk_rdbstore_test.cpp b/test/unittests/clouddisk_database/clouddisk_rdbstore_test.cpp index 4fa7246c0..f28ff3f39 100644 --- a/test/unittests/clouddisk_database/clouddisk_rdbstore_test.cpp +++ b/test/unittests/clouddisk_database/clouddisk_rdbstore_test.cpp @@ -374,7 +374,7 @@ HWTEST_F(CloudDiskRdbStoreTest, SetAttrTest4, TestSize.Level1) const unsigned long long size = 0; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - + auto transaction = make_shared(); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Update(_, _, _)).WillOnce(Return(std::make_pair(E_OK, 0))); @@ -571,7 +571,7 @@ HWTEST_F(CloudDiskRdbStoreTest, CreateTest8, TestSize.Level1) clouddiskrdbStore_->userId_ = 1; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - + auto transaction = make_shared(); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Insert(_, _, _)).WillOnce(Return(std::make_pair(E_RDB, 0))); @@ -644,11 +644,11 @@ HWTEST_F(CloudDiskRdbStoreTest, MkDirTest4, TestSize.Level1) bool noNeedUpload = false; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - + auto transaction = make_shared(); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Insert(_, _, _)).WillOnce(Return(std::make_pair(E_RDB, 0))); - + int32_t ret = clouddiskrdbStore_->MkDir(cloudId, parentCloudId, directoryName, noNeedUpload); EXPECT_EQ(ret, E_RDB); } @@ -670,7 +670,7 @@ HWTEST_F(CloudDiskRdbStoreTest, MkDirTest5, TestSize.Level1) auto transaction = make_shared(); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Insert(_, _, _)).WillOnce(Return(std::make_pair(E_OK, 0))); - + int32_t ret = clouddiskrdbStore_->MkDir(cloudId, parentCloudId, directoryName, noNeedUpload); EXPECT_EQ(ret, E_RDB); } @@ -692,7 +692,7 @@ HWTEST_F(CloudDiskRdbStoreTest, MkDirTest6, TestSize.Level1) auto transaction = make_shared(); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Insert(_, _, _)).WillOnce(Return(std::make_pair(E_RDB, 0))); - + int32_t ret = clouddiskrdbStore_->MkDir(cloudId, parentCloudId, directoryName, noNeedUpload); EXPECT_EQ(ret, E_RDB); } @@ -744,7 +744,7 @@ HWTEST_F(CloudDiskRdbStoreTest, WriteTest3, TestSize.Level1) auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; clouddiskrdbStore_->userId_ = 0; - + int32_t ret = clouddiskrdbStore_->Write(fileName, parentCloudId, cloudId); EXPECT_EQ(ret, E_PATH); } @@ -1542,7 +1542,7 @@ HWTEST_F(CloudDiskRdbStoreTest, RecycleSetXattrTest4, TestSize.Level1) bool preCount = true; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - + int32_t ret = clouddiskrdbStore_->RecycleSetXattr(name, parentCloudId, cloudId, value); EXPECT_EQ(ret, EINVAL); } @@ -2718,7 +2718,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetExtAttrTest3, TestSize.Level1) clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(nullptr))); - + int32_t ret = clouddiskrdbStore_->GetExtAttr(cloudId, value, pos); EXPECT_EQ(ret, E_RDB); } @@ -2740,7 +2740,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetExtAttrTest4, TestSize.Level1) EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_RDB)); - + int32_t ret = clouddiskrdbStore_->GetExtAttr(cloudId, value, pos); EXPECT_EQ(ret, E_RDB); } @@ -2763,7 +2763,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetExtAttrTest5, TestSize.Level1) An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetString(_, _)).WillRepeatedly(Return(E_RDB)); - + int32_t ret = clouddiskrdbStore_->GetExtAttr(cloudId, value, pos); EXPECT_EQ(ret, E_RDB); } @@ -2787,7 +2787,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetExtAttrTest6, TestSize.Level1) EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetString(_, _)).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetInt(_, _)).WillRepeatedly(Return(E_RDB)); - + int32_t ret = clouddiskrdbStore_->GetExtAttr(cloudId, value, pos); EXPECT_EQ(ret, E_RDB); } @@ -2811,7 +2811,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetExtAttrTest7, TestSize.Level1) EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetString(_, _)).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetInt(_, _)).WillRepeatedly(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->GetExtAttr(cloudId, value, pos); EXPECT_EQ(ret, E_OK); } @@ -2833,7 +2833,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetExtAttrTest8, TestSize.Level1) EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->GetExtAttr(cloudId, value, pos); EXPECT_EQ(ret, E_OK); } @@ -3145,11 +3145,12 @@ HWTEST_F(CloudDiskRdbStoreTest, RenameTest1, TestSize.Level1) const std::string oldFileName = "test"; const std::string newParentCloudId = "100"; const std::string newFileName = ""; + const bool newFileNoNeedUpload = false; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - - int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName); - EXPECT_EQ(ret, EINVAL); + + int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName, + newFileNoNeedUpload); } /** @@ -3163,10 +3164,12 @@ HWTEST_F(CloudDiskRdbStoreTest, RenameTest2, TestSize.Level1) const std::string oldFileName = "test"; const std::string newParentCloudId = "100"; const std::string newFileName = "newFileName"; + const bool newFileNoNeedUpload = false; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - - int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName); + + int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName, + newFileNoNeedUpload); EXPECT_EQ(ret, E_INVAL_ARG); } @@ -3181,10 +3184,12 @@ HWTEST_F(CloudDiskRdbStoreTest, RenameTest3, TestSize.Level1) const std::string oldFileName = ""; const std::string newParentCloudId = "100"; const std::string newFileName = "newFileName"; + const bool newFileNoNeedUpload = false; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - - int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName); + + int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName, + newFileNoNeedUpload); EXPECT_EQ(ret, E_INVAL_ARG); } @@ -3199,10 +3204,12 @@ HWTEST_F(CloudDiskRdbStoreTest, RenameTest4, TestSize.Level1) const std::string oldFileName = "test"; const std::string newParentCloudId = ""; const std::string newFileName = "newFileName"; + const bool newFileNoNeedUpload = false; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - - int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName); + + int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName, + newFileNoNeedUpload); EXPECT_EQ(ret, E_INVAL_ARG); } @@ -3217,10 +3224,12 @@ HWTEST_F(CloudDiskRdbStoreTest, RenameTest5, TestSize.Level1) const std::string oldFileName = "mock"; const std::string newParentCloudId = "100"; const std::string newFileName = "newFileName"; + const bool newFileNoNeedUpload = false; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - - int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName); + + int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName, + newFileNoNeedUpload); EXPECT_EQ(ret, EINVAL); } @@ -3235,10 +3244,12 @@ HWTEST_F(CloudDiskRdbStoreTest, RenameTest6, TestSize.Level1) const std::string oldFileName = "oldFileName"; const std::string newParentCloudId = "100"; const std::string newFileName = ".."; + const bool newFileNoNeedUpload = false; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - - int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName); + + int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName, + newFileNoNeedUpload); EXPECT_EQ(ret, EINVAL); } @@ -3253,10 +3264,12 @@ HWTEST_F(CloudDiskRdbStoreTest, RenameTest7, TestSize.Level1) const std::string oldFileName = "oldFileName"; const std::string newParentCloudId = "100"; const std::string newFileName = "mock"; + const bool newFileNoNeedUpload = false; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - - int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName); + + int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName, + newFileNoNeedUpload); EXPECT_EQ(ret, EINVAL); } @@ -3271,13 +3284,35 @@ HWTEST_F(CloudDiskRdbStoreTest, RenameTest8, TestSize.Level1) const std::string oldFileName = "oldFileName"; const std::string newParentCloudId = "100"; const std::string newFileName = "mock"; + const bool newFileNoNeedUpload = false; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - - int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName); + + int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName, + newFileNoNeedUpload); EXPECT_EQ(ret, EINVAL); } +/** + * @tc.name: Rename + * @tc.desc: Verify the CloudDiskRdbStore::Rename function + * @tc.type: FUNC + */ +HWTEST_F(CloudDiskRdbStoreTest, RenameTest9, TestSize.Level1) +{ + const std::string oldParentCloudId = "100"; + const std::string oldFileName = "test"; + const std::string newParentCloudId = "100"; + const std::string newFileName = "test"; + const bool newFileNoNeedUpload = false; + auto rdb = make_shared(); + clouddiskrdbStore_->rdbStore_ = rdb; + + int32_t ret = clouddiskrdbStore_->Rename(oldParentCloudId, oldFileName, newParentCloudId, newFileName, + newFileNoNeedUpload); + EXPECT_EQ(ret, E_OK); +} + /** * @tc.name: GetHasChild * @tc.desc: Verify the CloudDiskRdbStore::GetHasChild function @@ -3347,7 +3382,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UnlinkSyncedTest1, TestSize.Level1) auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, Update(_, _, _, _, An &>())).WillOnce(Return(E_RDB)); - + int32_t ret = clouddiskrdbStore_->UnlinkSynced(cloudId); EXPECT_EQ(ret, E_RDB); } @@ -3363,7 +3398,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UnlinkSyncedTest2, TestSize.Level1) auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, Update(_, _, _, _, An &>())).WillOnce(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->UnlinkSynced(cloudId); EXPECT_EQ(ret, E_OK); } @@ -3379,7 +3414,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UnlinkLocalTest1, TestSize.Level1) auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, Delete(_, _, _, An &>())).WillOnce(Return(E_RDB)); - + int32_t ret = clouddiskrdbStore_->UnlinkLocal(cloudId); EXPECT_EQ(ret, E_RDB); } @@ -3395,7 +3430,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UnlinkLocalTest2, TestSize.Level1) auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, Delete(_, _, _, An &>())).WillOnce(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->UnlinkLocal(cloudId); EXPECT_EQ(ret, E_OK); } @@ -3427,7 +3462,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UnlinkTest2, TestSize.Level1) std::string cloudId = "rootId"; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - + int32_t ret = clouddiskrdbStore_->Unlink(cloudId, noUpload); EXPECT_EQ(ret, E_INVAL_ARG); } @@ -3444,7 +3479,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UnlinkTest3, TestSize.Level1) auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, Delete(_, _, _, An &>())).WillOnce(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->Unlink(cloudId, noUpload); EXPECT_EQ(ret, E_OK); } @@ -3461,7 +3496,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UnlinkTest4, TestSize.Level1) auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, Update(_, _, _, _, An &>())).WillOnce(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->Unlink(cloudId, noUpload); EXPECT_EQ(ret, E_OK); } @@ -3480,7 +3515,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetDirtyTypeTest1, TestSize.Level1) clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(nullptr))); - + int32_t ret = clouddiskrdbStore_->GetDirtyType(cloudId, dirtyType); EXPECT_EQ(ret, E_RDB); } @@ -3579,7 +3614,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetCurNodeTest2, TestSize.Level1) clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(nullptr))); - + int32_t ret = clouddiskrdbStore_->GetCurNode(cloudId, curNode); EXPECT_EQ(ret, E_RDB); } @@ -3600,7 +3635,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetCurNodeTest3, TestSize.Level1) EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_RDB)); - + int32_t ret = clouddiskrdbStore_->GetCurNode(cloudId, curNode); EXPECT_EQ(ret, E_RDB); } @@ -3622,7 +3657,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetCurNodeTest4, TestSize.Level1) An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetRow(_)).WillRepeatedly(Return(E_RDB)); - + int32_t ret = clouddiskrdbStore_->GetCurNode(cloudId, curNode); EXPECT_EQ(ret, E_RDB); } @@ -3644,7 +3679,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetCurNodeTest5, TestSize.Level1) An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetRow(_)).WillRepeatedly(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->GetCurNode(cloudId, curNode); EXPECT_EQ(ret, E_OK); } @@ -3661,7 +3696,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetParentNodeTest1, TestSize.Level1) std::string fileName = "test"; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - + int32_t ret = clouddiskrdbStore_->GetParentNode(parentCloudId, nextCloudId, fileName); EXPECT_EQ(ret, E_INVAL_ARG); } @@ -3681,7 +3716,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetParentNodeTest2, TestSize.Level1) clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(nullptr))); - + int32_t ret = clouddiskrdbStore_->GetParentNode(parentCloudId, nextCloudId, fileName); EXPECT_EQ(ret, E_RDB); } @@ -3703,7 +3738,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetParentNodeTest3, TestSize.Level1) EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_RDB)); - + int32_t ret = clouddiskrdbStore_->GetParentNode(parentCloudId, nextCloudId, fileName); EXPECT_EQ(ret, E_RDB); } @@ -3726,7 +3761,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetParentNodeTest4, TestSize.Level1) An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetRow(_)).WillRepeatedly(Return(E_RDB)); - + int32_t ret = clouddiskrdbStore_->GetParentNode(parentCloudId, nextCloudId, fileName); EXPECT_EQ(ret, E_RDB); } @@ -3749,7 +3784,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetParentNodeTest5, TestSize.Level1) An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetRow(_)).WillRepeatedly(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->GetParentNode(parentCloudId, nextCloudId, fileName); EXPECT_EQ(ret, E_OK); } @@ -3765,7 +3800,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetUriFromDBTest1, TestSize.Level1) std::string uri = "100"; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - + int32_t ret = clouddiskrdbStore_->GetUriFromDB(parentCloudId, uri); EXPECT_EQ(ret, E_OK); } @@ -3781,7 +3816,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetUriFromDBTest2, TestSize.Level1) std::string uri = "100"; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; - + int32_t ret = clouddiskrdbStore_->GetUriFromDB(parentCloudId, uri); EXPECT_EQ(ret, E_OK); } @@ -3800,7 +3835,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetUriFromDBTest3, TestSize.Level1) clouddiskrdbStore_->rdbStore_ = rdb; EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(nullptr))); - + int32_t ret = clouddiskrdbStore_->GetUriFromDB(parentCloudId, uri); EXPECT_EQ(ret, E_RDB); } @@ -3823,7 +3858,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetUriFromDBTest4, TestSize.Level1) An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillOnce(Return(E_OK)).WillRepeatedly(Return(E_RDB)); EXPECT_CALL(*rset, GetRow(_)).WillRepeatedly(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->GetUriFromDB(parentCloudId, uri); EXPECT_EQ(ret, E_OK); } @@ -3846,7 +3881,7 @@ HWTEST_F(CloudDiskRdbStoreTest, GetUriFromDBTest5, TestSize.Level1) An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetRow(_)).WillRepeatedly(Return(E_OK)); - + int32_t ret = clouddiskrdbStore_->GetUriFromDB(parentCloudId, uri); EXPECT_EQ(ret, E_OK); } @@ -4149,7 +4184,7 @@ HWTEST_F(CloudDiskRdbStoreTest, InsertCopyDataTest3, TestSize.Level1) EXPECT_CALL(*rset, GetInt(_, _)).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetString(_, _)).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*transaction, Insert(_, _, _)).WillOnce(Return(std::make_pair(E_OK, 0))); - + int32_t ret = clouddiskrdbStore_->InsertCopyData(srcCloudId, destCloudId, destParentCloudId, rset); EXPECT_EQ(ret, E_OK); } @@ -4547,4 +4582,50 @@ HWTEST_F(CloudDiskRdbStoreTest, GetSrcCloudIdTest004, TestSize.Level1) } GTEST_LOG_(INFO) << "GetSrcCloudIdTest004 end"; } + +/** + * @tc.name: TriggerSyncForWrite + * @tc.desc: Verify the CloudDiskRdbStore::TriggerSyncForWrite function + * @tc.type: FUNC + * @tc.require: ICGORT + */ +HWTEST_F(CloudDiskRdbStoreTest, TriggerSyncForWriteTest001, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "TriggerSyncForWriteTest001 start"; + try { + auto rdb = make_shared(); + const std::string fileName = "Test"; + const std::string parentCloudId = "100"; + clouddiskrdbStore_->rdbStore_ = rdb; + clouddiskrdbStore_->TriggerSyncForWrite(fileName, parentCloudId); + EXPECT_EQ(fileName, "Test"); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "TriggerSyncForWriteTest001 failed"; + } + GTEST_LOG_(INFO) << "TriggerSyncForWriteTest001 end"; +} + +/** + * @tc.name: TriggerSyncForWrite + * @tc.desc: Verify the CloudDiskRdbStore::TriggerSyncForWrite function + * @tc.type: FUNC + * @tc.require: ICGORT + */ +HWTEST_F(CloudDiskRdbStoreTest, TriggerSyncForWriteTest002, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "TriggerSyncForWriteTest003 start"; + try { + auto rdb = make_shared(); + const std::string fileName = "mock"; + const std::string parentCloudId = "100"; + clouddiskrdbStore_->rdbStore_ = rdb; + clouddiskrdbStore_->TriggerSyncForWrite(fileName, parentCloudId); + EXPECT_EQ(fileName, "mock"); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "TriggerSyncForWriteTest003 failed"; + } + GTEST_LOG_(INFO) << "TriggerSyncForWriteTest003 end"; +} } // namespace OHOS::FileManagement::CloudDisk::Test \ No newline at end of file -- Gitee