From 04e5d73d9b0516edb685f71ca5ace0ce6e167b67 Mon Sep 17 00:00:00 2001 From: zhuzhihui Date: Tue, 18 Mar 2025 19:12:43 +0800 Subject: [PATCH] add ut for av_receiver_engine Signed-off-by: zhuzhihui --- .vscode/settings.json | 72 +++++++ .../src/av_receiver_engine_test.cpp | 187 ++++++++++++++++++ 2 files changed, 259 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..e7af2c64 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,72 @@ +{ + "files.associations": { + "random": "cpp", + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "charconv": "cpp", + "chrono": "cpp", + "cinttypes": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "compare": "cpp", + "concepts": "cpp", + "condition_variable": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "list": "cpp", + "map": "cpp", + "set": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "ratio": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "format": "cpp", + "fstream": "cpp", + "future": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "numbers": "cpp", + "ostream": "cpp", + "semaphore": "cpp", + "shared_mutex": "cpp", + "span": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "stop_token": "cpp", + "streambuf": "cpp", + "thread": "cpp", + "typeinfo": "cpp", + "variant": "cpp" + } +} \ No newline at end of file diff --git a/av_transport/av_trans_engine/av_receiver/test/unittest/av_receiver_engine/src/av_receiver_engine_test.cpp b/av_transport/av_trans_engine/av_receiver/test/unittest/av_receiver_engine/src/av_receiver_engine_test.cpp index a9e73718..ff8898c8 100644 --- a/av_transport/av_trans_engine/av_receiver/test/unittest/av_receiver_engine/src/av_receiver_engine_test.cpp +++ b/av_transport/av_trans_engine/av_receiver/test/unittest/av_receiver_engine/src/av_receiver_engine_test.cpp @@ -410,6 +410,7 @@ HWTEST_F(AvReceiverEngineTest, Release_001, testing::ext::TestSize.Level1) std::string codecType = MIME_VIDEO_H264; receiver->SetVideoCodecType(codecType); codecType = MIME_VIDEO_H265; + receiver->SetVideoCodecType(MIME_VIDEO_RAW); receiver->SetVideoCodecType(codecType); receiver->SetAudioCodecType(codecType); receiver->SetAudioChannelMask(value); @@ -528,5 +529,191 @@ HWTEST_F(AvReceiverEngineTest, OnEvent_001, testing::ext::TestSize.Level1) receiver->OnEvent(event); EXPECT_EQ(StateId::INITIALIZED, receiver->currentState_); } + +HWTEST_F(AvReceiverEngineTest, SetParameter_005, testing::ext::TestSize.Level1) +{ + std::string ownerName = "001"; + std::string peerDevId = "pEid"; + std::string value = "123"; + auto receiver = std::make_shared(ownerName, peerDevId); + receiver->avInput_ = FilterFactory::Instance().CreateFilterWithType(AVINPUT_NAME, "avinput"); + receiver->avOutput_ = FilterFactory::Instance().CreateFilterWithType(AVOUTPUT_NAME, "avoutput"); + std::shared_ptr pipeline_ = nullptr; + receiver->pipeline_ = std::make_shared(); + int32_t ret = receiver->SetParameter(AVTransTag::VIDEO_HEIGHT, value); + EXPECT_EQ(DH_AVT_SUCCESS, ret); + ret = receiver->SetParameter(AVTransTag::VIDEO_FRAME_RATE, value); + EXPECT_EQ(DH_AVT_SUCCESS, ret); + ret = receiver->SetParameter(AVTransTag::AUDIO_BIT_RATE, value); + EXPECT_EQ(DH_AVT_SUCCESS, ret); + ret = receiver->SetParameter(AVTransTag::VIDEO_BIT_RATE, value); + EXPECT_EQ(DH_AVT_SUCCESS, ret); + ret = receiver->SetParameter(AVTransTag::VIDEO_CODEC_TYPE, value); + EXPECT_EQ(DH_AVT_SUCCESS, ret); + ret = receiver->SetParameter(AVTransTag::INVALID, value); + EXPECT_EQ(ERR_DH_AVT_INVALID_PARAM, ret); +} + +HWTEST_F(AvReceiverEngineTest, SetParameterInner_001, testing::ext::TestSize.Level1) +{ + auto receiver = std::make_shared("001", "pEid"); + receiver->avInput_ = FilterFactory::Instance().CreateFilterWithType(AVINPUT_NAME, "avinput"); + receiver->avOutput_ = FilterFactory::Instance().CreateFilterWithType(AVOUTPUT_NAME, "avoutput"); + receiver->SetParameterInner(AVTransTag::VIDEO_CODEC_TYPE, MIME_VIDEO_H264); + EXPECT_EQ(receiver->avInput_->paramsMap_.find(Plugin::Tag::MIME) != receiver->avInput_->paramsMap_.end(), true); + receiver->SetParameterInner(AVTransTag::AUDIO_CODEC_TYPE, MIME_VIDEO_H264); + EXPECT_EQ(receiver->avInput_->paramsMap_.find(Plugin::Tag::MIME) != receiver->avInput_->paramsMap_.end(), true); + receiver->SetParameterInner(AVTransTag::AUDIO_CHANNEL_MASK, "50"); + bool ret = receiver->avInput_->paramsMap_.find(Plugin::Tag::AUDIO_CHANNELS) != + receiver->avInput_->paramsMap_.end(); + EXPECT_EQ(ret, true); + receiver->SetParameterInner(AVTransTag::AUDIO_SAMPLE_RATE, "50"); + ret = receiver->avInput_->paramsMap_.find(Plugin::Tag::AUDIO_SAMPLE_RATE) != receiver->avInput_->paramsMap_.end(); + EXPECT_EQ(ret, true); + receiver->SetParameterInner(AVTransTag::AUDIO_CHANNEL_LAYOUT, "50"); + ret = receiver->avInput_->paramsMap_.find(Plugin::Tag::AUDIO_CHANNEL_LAYOUT) != + receiver->avInput_->paramsMap_.end(); + EXPECT_EQ(ret, true); + receiver->SetParameterInner(AVTransTag::AUDIO_SAMPLE_FORMAT, "50"); + ret = receiver->avInput_->paramsMap_.find(Plugin::Tag::AUDIO_SAMPLE_FORMAT) != + receiver->avInput_->paramsMap_.end(); + EXPECT_EQ(ret, true); + receiver->SetParameterInner(AVTransTag::AUDIO_FRAME_SIZE, "50"); + ret = receiver->avInput_->paramsMap_.find(Plugin::Tag::AUDIO_SAMPLE_PER_FRAME) != + receiver->avInput_->paramsMap_.end(); + EXPECT_EQ(ret, true); +} + +HWTEST_F(AvReceiverEngineTest, SetParameterInner_002, testing::ext::TestSize.Level1) +{ + auto receiver = std::make_shared("001", "pEid"); + receiver->avInput_ = FilterFactory::Instance().CreateFilterWithType(AVINPUT_NAME, "avinput"); + receiver->avOutput_ = FilterFactory::Instance().CreateFilterWithType(AVOUTPUT_NAME, "avoutput"); + receiver->SetParameterInner(AVTransTag::TIME_SYNC_RESULT, MIME_VIDEO_H264); + bool ret = receiver->avOutput_->paramsMap_.find(Plugin::Tag::USER_TIME_SYNC_RESULT) != + receiver->avOutput_->paramsMap_.end(); + EXPECT_EQ(ret, true); + receiver->SetParameterInner(AVTransTag::START_AV_SYNC, MIME_VIDEO_H264); + ret = receiver->avOutput_->paramsMap_.find(Plugin::Tag::USER_AV_SYNC_GROUP_INFO) != + receiver->avOutput_->paramsMap_.end(); + EXPECT_EQ(ret, true); + receiver->SetParameterInner(AVTransTag::STOP_AV_SYNC, MIME_VIDEO_H264); + ret = receiver->avOutput_->paramsMap_.find(Plugin::Tag::USER_AV_SYNC_GROUP_INFO) != + receiver->avOutput_->paramsMap_.end(); + EXPECT_EQ(ret, true); + receiver->SetParameterInner(AVTransTag::SHARED_MEMORY_FD, MIME_VIDEO_H264); + ret = receiver->avOutput_->paramsMap_.find(Plugin::Tag::USER_SHARED_MEMORY_FD) != + receiver->avOutput_->paramsMap_.end(); + EXPECT_EQ(ret, true); + receiver->currentState_ = StateId::INITIALIZED; + receiver->SetParameterInner(AVTransTag::ENGINE_READY, MIME_VIDEO_H264); + ret = receiver->avInput_->paramsMap_.find(Plugin::Tag::MEDIA_TYPE) != receiver->avInput_->paramsMap_.end(); + EXPECT_EQ(ret, true); + receiver->SetParameterInner(AVTransTag::INVALID, MIME_VIDEO_H264); + ret = receiver->avInput_->paramsMap_.find(Plugin::Tag::INVALID) == receiver->avInput_->paramsMap_.end(); + EXPECT_EQ(ret, true); +} + +HWTEST_F(AvReceiverEngineTest, Release_002, testing::ext::TestSize.Level1) +{ + std::string ownerName = OWNER_NAME_D_CAMERA; + std::string peerDevId = "pEid"; + auto receiver = std::make_shared(ownerName, peerDevId); + receiver->RegRespFunMap(); + std::string value = "50"; + receiver->avInput_ = nullptr; + receiver->avOutput_ = nullptr; + receiver->SetVideoWidth(value); + receiver->SetVideoHeight(value); + receiver->SetVideoFrameRate(value); + receiver->SetAudioBitRate(value); + receiver->SetVideoBitRate(value); + std::string codecType = MIME_VIDEO_H264; + receiver->SetVideoCodecType(codecType); + codecType = MIME_VIDEO_H265; + receiver->SetVideoCodecType(codecType); + receiver->SetAudioCodecType(codecType); + receiver->SetAudioChannelMask(value); + receiver->SetAudioSampleRate(value); + receiver->SetAudioChannelLayout(value); + receiver->SetAudioSampleFormat(value); + receiver->SetAudioFrameSize(value); + std::string params = ""; + receiver->SetSyncResult(params); + receiver->SetStartAvSync(params); + receiver->SetStopAvSync(params); + receiver->SetSharedMemoryFd(params); + receiver->SetEngineReady(params); + receiver->currentState_ = StateId::IDLE; + receiver->dhFwkKit_ = std::make_shared(); + int32_t ret = receiver->Release(); + EXPECT_EQ(DH_AVT_SUCCESS, ret); +} + +HWTEST_F(AvReceiverEngineTest, HandleOutputBuffer_002, testing::ext::TestSize.Level1) +{ + std::string ownerName = OWNER_NAME_D_CAMERA; + std::string peerDevId = "pEid"; + auto receiver = std::make_shared(ownerName, peerDevId); + receiver->currentState_ = StateId::INITIALIZED; + std::shared_ptr buffer = nullptr; + receiver->receiverCallback_ = std::make_shared(); + int32_t ret = receiver->HandleOutputBuffer(buffer); + EXPECT_EQ(ERR_DH_AVT_OUTPUT_DATA_FAILED, ret); + buffer = std::make_shared(); + std::shared_ptr receiverCallback = receiver->receiverCallback_; + receiver->receiverCallback_ = nullptr; + ret = receiver->HandleOutputBuffer(buffer); + receiver->receiverCallback_ = receiverCallback; + EXPECT_EQ(ERR_DH_AVT_OUTPUT_DATA_FAILED, ret); +} + +HWTEST_F(AvReceiverEngineTest, OnChannelEvent_004, testing::ext::TestSize.Level1) +{ + std::string ownerName = OWNER_NAME_D_CAMERA; + std::string peerDevId = "pEid"; + auto receiver = std::make_shared(ownerName, peerDevId); + AVTransEvent event; + event.content = "content"; + event.type = EventType::EVENT_REMOVE_STREAM; + receiver->OnChannelEvent(event); + receiver->currentState_ = StateId::BUTT; + EXPECT_EQ(StateId::BUTT, receiver->currentState_); +} + +HWTEST_F(AvReceiverEngineTest, OnEvent_002, testing::ext::TestSize.Level1) +{ + std::string ownerName = OWNER_NAME_D_CAMERA; + std::string peerDevId = "pEid"; + auto receiver = std::make_shared(ownerName, peerDevId); + OHOS::Media::Event event; + event.srcFilter = "filter"; + event.type = OHOS::Media::EventType::EVENT_BUFFER_PROGRESS; + std::shared_ptr buffer = nullptr; + event.param = buffer; + receiver->currentState_ = StateId::INITIALIZED; + receiver->OnEvent(event); + EXPECT_EQ(StateId::INITIALIZED, receiver->currentState_); + event.param = std::make_shared(); + receiver->OnEvent(event); + EXPECT_EQ(StateId::INITIALIZED, receiver->currentState_); + receiver->receiverCallback_ = std::make_shared(); + event.type = OHOS::Media::EventType::EVENT_PLUGIN_EVENT; + event.param = PluginEvent{PluginEventType::AUDIO_INTERRUPT, 0, "aaa"}; + receiver->OnEvent(event); + EXPECT_EQ(StateId::INITIALIZED, receiver->currentState_); +} + +HWTEST_F(AvReceiverEngineTest, OnStreamReceived_001, testing::ext::TestSize.Level1) +{ + std::string ownerName = OWNER_NAME_D_CAMERA; + std::string peerDevId = "pEid"; + auto receiver = std::make_shared(ownerName, peerDevId); + receiver->currentState_ = StateId::INITIALIZED; + StreamData *data = nullptr; + StreamData *ext = nullptr; + receiver->OnStreamReceived(data, ext); + EXPECT_EQ(StateId::INITIALIZED, receiver->currentState_); +} } // namespace DistributedHardware } // namespace OHOS \ No newline at end of file -- Gitee