diff --git a/services/cloudsyncservice/src/transport/message_handler.cpp b/services/cloudsyncservice/src/transport/message_handler.cpp index 869c5dfc36926819aef4e50a50d95ac7eb274bea..e1b510d8db9ebbf4790c8f5158ec63661afc9bb9 100644 --- a/services/cloudsyncservice/src/transport/message_handler.cpp +++ b/services/cloudsyncservice/src/transport/message_handler.cpp @@ -40,11 +40,9 @@ MessageHandler::MessageHandler(MessageInputInfo &info) bool MessageHandler::PackData(uint8_t *data, uint32_t totalLen) { - if (!data || totalLen < dataSize_) { - LOGE("Invalid param, totalLen:%{public}d, dataSize:%{public}d", totalLen, dataSize_); - return false; - } - + bool isParamInvalid = !data || totalLen < dataSize_; + CHECK_AND_RETURN_RET_LOG(!isParamInvalid, false, "Invalid param, totalLen:%{public}d, dataSize:%{public}d", + totalLen, dataSize_); uint8_t *ptr = data; MessageHeader *head = reinterpret_cast(ptr); head->magic = MSG_MAGIC; @@ -85,10 +83,8 @@ bool MessageHandler::PackData(uint8_t *data, uint32_t totalLen) bool MessageHandler::UnPackData(uint8_t *data, uint32_t totalLen) { - if (!data || totalLen < sizeof(MessageHeader)) { - LOGE("invalid input data, totalLen:%{public}d", totalLen); - return false; - } + bool isParamInvalid = !data || totalLen < sizeof(MessageHeader); + CHECK_AND_RETURN_RET_LOG(!isParamInvalid, false, "invalid input data, totalLen:%{public}d", totalLen); uint8_t *ptr = data; uint32_t leftSize = totalLen; diff --git a/test/unittests/cloudsync_sa/transport/file_transfer_manager_test.cpp b/test/unittests/cloudsync_sa/transport/file_transfer_manager_test.cpp index cec0c5115eb9a7ca52eb42e7be84d91d5a38c271..ccff1a6062078364e1bb8dae99cf6b675c592823 100644 --- a/test/unittests/cloudsync_sa/transport/file_transfer_manager_test.cpp +++ b/test/unittests/cloudsync_sa/transport/file_transfer_manager_test.cpp @@ -74,6 +74,8 @@ HWTEST_F(FileTransferManagerTest, InitTest001, TestSize.Level0) auto fileTransferManager = make_shared(sessionManager); fileTransferManager->Init(); fileTransferManager->OnSessionClosed(); + FileTransferManager fileTransferManager2(sessionManager); + fileTransferManager2.OnSessionClosed(); EXPECT_NE(fileTransferManager->sessionManager_, nullptr); } catch (...) { EXPECT_TRUE(false); @@ -95,9 +97,9 @@ HWTEST_F(FileTransferManagerTest, DownloadFileFromRemoteDeviceTest001, TestSize. auto sessionManager = make_shared(); char data[] = "test data"; string peerNetworkId = "test peerNetworkId"; - auto fileTransferManager = make_shared(sessionManager); - fileTransferManager->DownloadFileFromRemoteDevice(peerNetworkId, 0, 0, "data/test"); - EXPECT_NE(fileTransferManager->sessionManager_, nullptr); + FileTransferManager fileTransferManager(sessionManager); + fileTransferManager.DownloadFileFromRemoteDevice(peerNetworkId, 0, 0, "data/test"); + EXPECT_NE(fileTransferManager.sessionManager_, nullptr); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "DownloadFileFromRemoteDeviceTest001 failed"; @@ -119,9 +121,9 @@ HWTEST_F(FileTransferManagerTest, DownloadFileFromRemoteDeviceTest002, TestSize. char data[] = "test data"; string peerNetworkId = "test peerNetworkId"; std::string uri = "file://com.ohos.a/data/storage/el2/distrubutedfiles/1.txt"; - auto fileTransferManager = make_shared(sessionManager); - fileTransferManager->DownloadFileFromRemoteDevice(peerNetworkId, 0, 0, uri); - EXPECT_NE(fileTransferManager->sessionManager_, nullptr); + FileTransferManager fileTransferManager(sessionManager); + fileTransferManager.DownloadFileFromRemoteDevice(peerNetworkId, 0, 0, uri); + EXPECT_NE(fileTransferManager.sessionManager_, nullptr); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "DownloadFileFromRemoteDeviceTest002 failed"; @@ -141,8 +143,8 @@ HWTEST_F(FileTransferManagerTest, GetBundleNameForUriTest001, TestSize.Level1) try { auto sessionManager = make_shared(); std::string uri = "file://com.ohos.a/data/storage/el2/distrubutedfiles/1.txt"; - auto fileTransferManager = make_shared(sessionManager); - auto bundleName = fileTransferManager->GetBundleNameForUri(uri); + FileTransferManager fileTransferManager(sessionManager); + auto bundleName = fileTransferManager.GetBundleNameForUri(uri); EXPECT_EQ(bundleName, "com.ohos.a"); } catch (...) { EXPECT_TRUE(false); @@ -163,8 +165,8 @@ HWTEST_F(FileTransferManagerTest, GetBundleNameForUriTest002, TestSize.Level1) try { auto sessionManager = make_shared(); std::string uri = "data/"; - auto fileTransferManager = make_shared(sessionManager); - auto bundleName = fileTransferManager->GetBundleNameForUri(uri); + FileTransferManager fileTransferManager(sessionManager); + auto bundleName = fileTransferManager.GetBundleNameForUri(uri); EXPECT_TRUE(bundleName.empty()); } catch (...) { EXPECT_TRUE(false); @@ -185,8 +187,8 @@ HWTEST_F(FileTransferManagerTest, GetBundleNameForUriTest003, TestSize.Level1) try { auto sessionManager = make_shared(); std::string uri = "file://com.ohos.a"; - auto fileTransferManager = make_shared(sessionManager); - auto bundleName = fileTransferManager->GetBundleNameForUri(uri); + FileTransferManager fileTransferManager(sessionManager); + auto bundleName = fileTransferManager.GetBundleNameForUri(uri); EXPECT_TRUE(bundleName.empty()); } catch (...) { EXPECT_TRUE(false); @@ -207,9 +209,9 @@ HWTEST_F(FileTransferManagerTest, OnMessageHandleTest001, TestSize.Level1) auto sessionManager = make_shared(); char data[] = "test data"; string peerNetworkId = "test peerNetworkId"; - auto fileTransferManager = make_shared(sessionManager); - fileTransferManager->OnMessageHandle(peerNetworkId, 0, data, sizeof(data)); - EXPECT_NE(fileTransferManager->sessionManager_, nullptr); + FileTransferManager fileTransferManager(sessionManager); + fileTransferManager.OnMessageHandle(peerNetworkId, 0, data, sizeof(data)); + EXPECT_NE(fileTransferManager.sessionManager_, nullptr); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "OnMessageHandleTest001 failed"; @@ -230,17 +232,17 @@ HWTEST_F(FileTransferManagerTest, HandleDownloadFileRequestTest001, TestSize.Lev auto sessionManager = make_shared(); char data[] = "test data"; string peerNetworkId = "test peerNetworkId"; - auto fileTransferManager = make_shared(sessionManager); + FileTransferManager fileTransferManager(sessionManager); MessageInputInfo msgInputInfo = {}; msgInputInfo.userId = 100; msgInputInfo.taskId = 100; msgInputInfo.uri = "data/test"; MessageHandler msgHandle(msgInputInfo); - fileTransferManager->HandleDownloadFileRequest(msgHandle, peerNetworkId, 0); - fileTransferManager->HandleDownloadFileResponse(msgHandle); - fileTransferManager->HandleRecvFileFinished(); - EXPECT_NE(fileTransferManager->sessionManager_, nullptr); + fileTransferManager.HandleDownloadFileRequest(msgHandle, peerNetworkId, 0); + fileTransferManager.HandleDownloadFileResponse(msgHandle); + fileTransferManager.HandleRecvFileFinished(); + EXPECT_NE(fileTransferManager.sessionManager_, nullptr); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "HandleDownloadFileRequestTest001 failed"; @@ -261,8 +263,8 @@ HWTEST_F(FileTransferManagerTest, IsFileExistsTest001, TestSize.Level1) auto sessionManager = make_shared(); char data[] = "test data"; string peerNetworkId = "test peerNetworkId"; - auto fileTransferManager = make_shared(sessionManager); - EXPECT_TRUE(fileTransferManager->IsFileExists("data/errorPath") == false); + FileTransferManager fileTransferManager(sessionManager); + EXPECT_TRUE(fileTransferManager.IsFileExists("data/errorPath") == false); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "IsFileExistsTest001 failed"; @@ -283,11 +285,11 @@ HWTEST_F(FileTransferManagerTest, AddTransTaskTest001, TestSize.Level1) auto sessionManager = make_shared(); char data[] = "test data"; string peerNetworkId = "test peerNetworkId"; - auto fileTransferManager = make_shared(sessionManager); - fileTransferManager->AddTransTask("data/test", 0, 100); - fileTransferManager->FinishTransTask("data/test", 0); - fileTransferManager->RemoveTransTask(100); - EXPECT_NE(fileTransferManager->sessionManager_, nullptr); + FileTransferManager fileTransferManager(sessionManager); + fileTransferManager.AddTransTask("data/test", 0, 100); + fileTransferManager.FinishTransTask("data/test", 0); + fileTransferManager.RemoveTransTask(100); + EXPECT_NE(fileTransferManager.sessionManager_, nullptr); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "AddTransTaskTest001 failed"; @@ -306,8 +308,8 @@ HWTEST_F(FileTransferManagerTest, UriToPathTest001, TestSize.Level1) GTEST_LOG_(INFO) << "UriToPathTest001 start"; try { auto sessionManager = make_shared(); - auto fileTransferManager = make_shared(sessionManager); - auto [first, second] = fileTransferManager->UriToPath("data/test", 100, false); + FileTransferManager fileTransferManager(sessionManager); + auto [first, second] = fileTransferManager.UriToPath("data/test", 100, false); EXPECT_TRUE(first.empty()); EXPECT_TRUE(second.empty()); } catch (...) { @@ -328,10 +330,10 @@ HWTEST_F(FileTransferManagerTest, UriToPathTest002, TestSize.Level1) GTEST_LOG_(INFO) << "UriToPathTest002 start"; try { auto sessionManager = make_shared(); - auto fileTransferManager = make_shared(sessionManager); + FileTransferManager fileTransferManager(sessionManager); std::string uri = "file://com.ohos.a/data/storage/el2/distributedfiles/1.txt"; std::string relativePath = "/1.txt"; - auto [first, second] = fileTransferManager->UriToPath(uri, 100, false); + auto [first, second] = fileTransferManager.UriToPath(uri, 100, false); EXPECT_EQ(second, relativePath); } catch (...) { EXPECT_TRUE(false); diff --git a/test/unittests/cloudsync_sa/transport/message_handler_test.cpp b/test/unittests/cloudsync_sa/transport/message_handler_test.cpp index 6c2c83ce31784d5ba8d4c42402f3c9f434b4cba8..e84c9ef4a8e8f8697a108c096c79626d71c53074 100644 --- a/test/unittests/cloudsync_sa/transport/message_handler_test.cpp +++ b/test/unittests/cloudsync_sa/transport/message_handler_test.cpp @@ -75,16 +75,15 @@ HWTEST_F(MessageHandlerTest, GetDataTest001, TestSize.Level1) inputInfo.errorCode = 1; inputInfo.userId = 100; inputInfo.taskId = 100; - auto messageHandler = make_shared(inputInfo); - EXPECT_TRUE(messageHandler); + MessageHandler messageHandler(inputInfo); - EXPECT_EQ(messageHandler->GetMsgType(), MSG_DOWNLOAD_FILE_REQ); - EXPECT_EQ(messageHandler->GetSrcNetworkId(), "srcNetworkId"); - EXPECT_EQ(messageHandler->GetDstNetworkId(), "dstNetworkId"); - EXPECT_EQ(messageHandler->GetUri(), "uritest"); - EXPECT_EQ(messageHandler->GetErrorCode(), 1); - EXPECT_EQ(messageHandler->GetUserId(), 100); - EXPECT_EQ(messageHandler->GetTaskId(), 100); + EXPECT_EQ(messageHandler.GetMsgType(), MSG_DOWNLOAD_FILE_REQ); + EXPECT_EQ(messageHandler.GetSrcNetworkId(), "srcNetworkId"); + EXPECT_EQ(messageHandler.GetDstNetworkId(), "dstNetworkId"); + EXPECT_EQ(messageHandler.GetUri(), "uritest"); + EXPECT_EQ(messageHandler.GetErrorCode(), 1); + EXPECT_EQ(messageHandler.GetUserId(), 100); + EXPECT_EQ(messageHandler.GetTaskId(), 100); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "GetDataTest001 failed"; @@ -110,14 +109,13 @@ HWTEST_F(MessageHandlerTest, PackDataTest001, TestSize.Level1) inputInfo.errorCode = 1; inputInfo.userId = 100; inputInfo.taskId = 100; - auto messageHandler = make_shared(inputInfo); - EXPECT_TRUE(messageHandler); - cout << "messageHandler->GetDataSize():" << messageHandler->GetDataSize() << endl; - auto dataSubPtr = std::make_unique(messageHandler->GetDataSize()); - EXPECT_TRUE(messageHandler->PackData(dataSubPtr.get(), messageHandler->GetDataSize())); + MessageHandler messageHandler(inputInfo); + cout << "messageHandler->GetDataSize():" << messageHandler.GetDataSize() << endl; + auto dataSubPtr = std::make_unique(messageHandler.GetDataSize()); + EXPECT_TRUE(messageHandler.PackData(dataSubPtr.get(), messageHandler.GetDataSize())); MessageHandler msgHandleSub; - EXPECT_TRUE(msgHandleSub.UnPackData(dataSubPtr.get(), messageHandler->GetDataSize())); + EXPECT_TRUE(msgHandleSub.UnPackData(dataSubPtr.get(), messageHandler.GetDataSize())); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "PackDataTest001 FAILED"; diff --git a/utils/log/include/utils_log.h b/utils/log/include/utils_log.h index 82b307282dfedd9d8708aee7f716ff3f1788a7e9..9f642520ad30df91d7c0fac606eba9bc62fa68ce 100644 --- a/utils/log/include/utils_log.h +++ b/utils/log/include/utils_log.h @@ -43,6 +43,14 @@ std::string GetFileNameFromFullPath(const char *str); #define LOGF(fmt, ...) HILOG_FATAL(LOG_CORE, "[%{public}s:%{public}d->%{public}s] " fmt, \ GetFileNameFromFullPath(__FILE__).c_str(), __LINE__, __FUNCTION__, ##__VA_ARGS__) +#define CHECK_AND_RETURN_RET_LOG(cond, ret, fmt, ...) \ + do { \ + if (!(cond)) { \ + LOGE(fmt, ##__VA_ARGS__); \ + return ret; \ + } \ + } while (0) + std::string GetAnonyString(const std::string &value); std::string GetAnonyInt32(const int32_t value); } // namespace OHOS