From 4436faed30c3e84e5f4769522863171f3953c05e Mon Sep 17 00:00:00 2001 From: luqing Date: Tue, 27 May 2025 14:49:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dint64=20=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=20Signed-off-by:=20luqing=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../object/src/object_data_listener.cpp | 10 ++++-- .../service/test/object_manager_test.cpp | 31 +++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/services/distributeddataservice/service/object/src/object_data_listener.cpp b/services/distributeddataservice/service/object/src/object_data_listener.cpp index 8451fa30d..422ac910a 100644 --- a/services/distributeddataservice/service/object/src/object_data_listener.cpp +++ b/services/distributeddataservice/service/object/src/object_data_listener.cpp @@ -82,9 +82,15 @@ int32_t ObjectAssetsRecvListener::OnRecvProgress(const std::string &srcNetworkId return OBJECT_INNER_ERROR; } + if (totalBytes == 0 || totalBytes < processBytes) { + ZLOGE("OnRecvProgress error! processBytes: %{public}" PRIu64 ", totalBytes: %{public}" PRIu64, + processBytes, totalBytes); + return OBJECT_INNER_ERROR; + } + auto objectKey = assetObj->dstBundleName_ + assetObj->sessionId_; - ZLOGI("OnRecvProgress, srcNetworkId: %{public}s, objectKey:%{public}s, totalBytes: %{public}llu," - "processBytes: %{public}llu.", + ZLOGI("OnRecvProgress, srcNetworkId: %{public}s, objectKey:%{public}s, totalBytes: %{public}" PRIu64 + ", processBytes: %{public}" PRIu64 ".", DistributedData::Anonymous::Change(srcNetworkId).c_str(), objectKey.c_str(), totalBytes, processBytes); return OBJECT_SUCCESS; } diff --git a/services/distributeddataservice/service/test/object_manager_test.cpp b/services/distributeddataservice/service/test/object_manager_test.cpp index 61eb66a80..145081532 100644 --- a/services/distributeddataservice/service/test/object_manager_test.cpp +++ b/services/distributeddataservice/service/test/object_manager_test.cpp @@ -1022,6 +1022,37 @@ HWTEST_F(ObjectManagerTest, OnFinished001, TestSize.Level1) EXPECT_EQ(ret, DistributedObject::OBJECT_SUCCESS); } +/** +* @tc.name: OnRecvProgress001 +* @tc.desc: OnRecvProgress test. +* @tc.type: FUNC +*/ +HWTEST_F(ObjectManagerTest, OnRecvProgress001, TestSize.Level1) +{ + std::string srcNetworkId = "srcNetworkId"; + sptr assetObj = nullptr; + uint64_t totalBytes = 100; + uint64_t processBytes = 50; + ObjectAssetsRecvListener listener; + + int32_t ret = listener.OnRecvProgress(srcNetworkId, assetObj, totalBytes, processBytes); + EXPECT_NE(ret, DistributedObject::OBJECT_SUCCESS); + + sptr assetObj_1 = new AssetObj(); + assetObj_1->dstBundleName_ = bundleName_; + assetObj_1->srcBundleName_ = bundleName_; + assetObj_1->dstNetworkId_ = "1"; + assetObj_1->sessionId_ = "123"; + ret = listener.OnRecvProgress(srcNetworkId, assetObj_1, 0, processBytes); + EXPECT_NE(ret, DistributedObject::OBJECT_SUCCESS); + + ret = listener.OnRecvProgress(srcNetworkId, assetObj_1, totalBytes, totalBytes + 1); + EXPECT_NE(ret, DistributedObject::OBJECT_SUCCESS); + + ret = listener.OnRecvProgress(srcNetworkId, assetObj_1, totalBytes, processBytes); + EXPECT_EQ(ret, DistributedObject::OBJECT_SUCCESS); +} + /** * @tc.name: GetObjectData001 * @tc.desc: GetObjectData test. -- Gitee