diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index a945246e9d11b9805a54a84fe66103e4b643de58..d608e25bc3ae9650d8f1850595c9c5a3cc3992e4 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -220,6 +220,8 @@ int32_t DCameraSoftbusAdapter::CreateSoftBusSourceSocketClient(std::string myDev .dataType = sessionModeAndDataTypeMap_[sessionMode], }; } + DHLOGD("create socket client myDevIdPeerSessionName: %{public}s, srcSessionName: %{public}s", + GetAnonyString(myDevIdPeerSessionName).c_str(), GetAnonyString(srcSessionName).c_str()); int socketId = Socket(clientSocketInfo); if (socketId < 0) { DHLOGE("create socket client error, socket is invalid"); diff --git a/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp b/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp index 46785afdb9f85b175a43e4d410be4554d9e12d14..d13b7b196d6e7235ab3f2d9b22ea8cfe6ef8a639 100644 --- a/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp +++ b/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp @@ -23,6 +23,7 @@ #include "data_buffer.h" #include "dcamera_softbus_session.h" #include "dcamera_hisysevent_adapter.h" +#include "dcamera_utils_tools.h" #include "distributed_camera_constants.h" #include "distributed_camera_errno.h" #include "session_bus_center.h" @@ -427,6 +428,7 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_014, TestSize.L DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; std::string myDevId = "abcde"; + ManageSelectChannel::GetInstance().SetSinkConnect(true); int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, sessionMode, role); int32_t sessionId = 2; @@ -820,5 +822,82 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_032, TestSize.L ret = DCameraSoftbusAdapter::GetInstance().HandleSourceStreamExt(dataBuffer, data); EXPECT_EQ(DCAMERA_BAD_VALUE, ret); } + +/** + * @tc.name: dcamera_softbus_adapter_test_033 + * @tc.desc: Verify the DCameraSoftbusSourceGetSession function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_033, TestSize.Level1) +{ + std::string sessionName = "sourcetest033"; + DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; + std::string mySessName = "sourcetest033"; + std::string peerSessName = "sourcetest033"; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; + std::string peerDevId = TEST_DEVICE_ID; + std::string myDevId = "abcde"; + ManageSelectChannel::GetInstance().SetSrcConnect(true); + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); + int32_t sessionId = 27; + std::shared_ptr session = std::make_shared(); + PeerSocketInfo info = { + .name = const_cast(peerSessName.c_str()), + .pkgName = const_cast(DCAMERA_PKG_NAME.c_str()), + .networkId = const_cast(peerDevId.c_str()), + .dataType = TransDataType::DATA_TYPE_BYTES, + }; + ret = DCameraSoftbusAdapter::GetInstance().SourceOnBind(sessionId, info); + ret = DCameraSoftbusAdapter::GetInstance().DCameraSoftbusSourceGetSession(sessionId, session); + EXPECT_EQ(DCAMERA_NOT_FOUND, ret); + mySessName = "sourcetest0027"; + ret = DCameraSoftbusAdapter::GetInstance().DCameraSoftbusSourceGetSession(sessionId, session); + EXPECT_EQ(DCAMERA_NOT_FOUND, ret); + sessionId = 2; + DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); + EXPECT_EQ(DCAMERA_NOT_FOUND, ret); + + int32_t socket = 0; + DCameraSoftbusAdapter::GetInstance().RecordSourceSocketSession(socket, session); + + session = nullptr; + DCameraSoftbusAdapter::GetInstance().RecordSourceSocketSession(socket, session); + std::shared_ptr buffer = nullptr; + StreamData *ext = nullptr; + ret = DCameraSoftbusAdapter::GetInstance().HandleSourceStreamExt(buffer, ext); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); +} + +/** + * @tc.name: dcamera_softbus_adapter_test_034 + * @tc.desc: Verify the SendSofbusStream function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_034, TestSize.Level1) +{ + std::string sessionName = "sourcetest034"; + DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; + std::string mySessName = "sourcetest034"; + std::string peerSessName = "sinktest02"; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; + std::string peerDevId = TEST_DEVICE_ID; + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); + size_t capacity = 1; + std::shared_ptr dataBuffer = std::make_shared(capacity); + int32_t sessionId = 1; + dataBuffer->SetInt64(TIME_STAMP_US, 1); + dataBuffer->SetInt64(FRAME_TYPE, 1); + dataBuffer->SetInt64(INDEX, 1); + dataBuffer->SetInt64(START_ENCODE_TIME_US, 0); + dataBuffer->SetInt64(FINISH_ENCODE_TIME_US, 1); + ret = DCameraSoftbusAdapter::GetInstance().SendSofbusStream(sessionId, dataBuffer); + DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); + EXPECT_EQ(DCAMERA_OK, ret); +} } } \ No newline at end of file diff --git a/services/channel/test/unittest/common/channel/dcamera_softbus_latency_test.cpp b/services/channel/test/unittest/common/channel/dcamera_softbus_latency_test.cpp index 952cabb5d7a2476ccf63efba752eb8b278d62f02..73c086d4e51825122e72214740035ea48daaaf0b 100644 --- a/services/channel/test/unittest/common/channel/dcamera_softbus_latency_test.cpp +++ b/services/channel/test/unittest/common/channel/dcamera_softbus_latency_test.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2023-2024 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 diff --git a/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp b/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp index e5404c891b23be070a3fc6a6913911a41b9e69ce..474d2d87ec20160ba1ecb2d602fd578802442dad 100644 --- a/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp +++ b/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp @@ -175,6 +175,8 @@ HWTEST_F(DCameraSoftbusSessionTest, dcamera_softbus_session_test_005, TestSize.L size = 2; softbusSession_->PackRecvData(buffer); usleep(TEST_SLEEP_SEC); + buffer = nullptr; + softbusSession_->PackRecvData(buffer); int32_t ret = softbusSession_->CloseSession(); EXPECT_EQ(DCAMERA_OK, ret); } @@ -196,6 +198,8 @@ HWTEST_F(DCameraSoftbusSessionTest, dcamera_softbus_session_test_006, TestSize.L softbusSession_->AssembleNoFrag(buffer, headerPara); headerPara.totalLen = 1; softbusSession_->AssembleNoFrag(buffer, headerPara); + buffer = nullptr; + softbusSession_->AssembleNoFrag(buffer, headerPara); int32_t ret = softbusSession_->CloseSession(); EXPECT_EQ(DCAMERA_OK, ret); } @@ -227,6 +231,8 @@ HWTEST_F(DCameraSoftbusSessionTest, dcamera_softbus_session_test_007, TestSize.L softbusSession_->nowSubSeq_ = 1; headerPara.totalLen = 10; softbusSession_->AssembleFrag(buffer, headerPara); + buffer = nullptr; + softbusSession_->AssembleFrag(buffer, headerPara); int32_t ret = softbusSession_->CloseSession(); EXPECT_EQ(DCAMERA_OK, ret); } @@ -301,6 +307,9 @@ HWTEST_F(DCameraSoftbusSessionTest, dcamera_softbus_session_test_010, TestSize.L mode = DCAMERA_SESSION_MODE_JPEG; ret = softbusSession_->SendData(mode, buffer); EXPECT_EQ(DCAMERA_WRONG_STATE, ret); + mode = static_cast(-1); + ret = softbusSession_->SendData(mode, buffer); + EXPECT_EQ(DCAMERA_NOT_FOUND, ret); softbusSession_->sendFuncMap_.clear(); ret = softbusSession_->SendData(mode, buffer); EXPECT_EQ(DCAMERA_NOT_FOUND, ret);