From 6b05f82f8b62c5b460efef7dda37c6d2ed8afd56 Mon Sep 17 00:00:00 2001 From: "zhuzhihui7@huawei.com" Date: Fri, 14 Mar 2025 18:34:02 +0800 Subject: [PATCH] add ut Signed-off-by: zhuzhihui7@huawei.com --- .../src/av_audio_sender_engine_test.cpp | 134 ++++++++++++++++++ .../av_trans_audio_input_filter_test.cpp | 64 +++++++++ .../av_trans_bus_input_filter_test.cpp | 42 ++++++ .../av_trans_dsoftbus_output_filter_test.cpp | 80 +++++++++++ 4 files changed, 320 insertions(+) diff --git a/av_transport/av_trans_engine/av_sender/test/unittest/av_sender_engine/src/av_audio_sender_engine_test.cpp b/av_transport/av_trans_engine/av_sender/test/unittest/av_sender_engine/src/av_audio_sender_engine_test.cpp index 191617ff..ef580d7a 100644 --- a/av_transport/av_trans_engine/av_sender/test/unittest/av_sender_engine/src/av_audio_sender_engine_test.cpp +++ b/av_transport/av_trans_engine/av_sender/test/unittest/av_sender_engine/src/av_audio_sender_engine_test.cpp @@ -168,6 +168,17 @@ HWTEST_F(AvAudioSenderEngineTest, Start_003, testing::ext::TestSize.Level1) EXPECT_EQ(ERR_DH_AVT_CREATE_CHANNEL_FAILED, ret); } +HWTEST_F(AvAudioSenderEngineTest, Start_004, testing::ext::TestSize.Level1) +{ + std::string ownerName = "001"; + std::string peerDevId = "pEid"; + auto sender = std::make_shared(ownerName, peerDevId); + sender->currentState_ = StateId::IDLE; + sender->pipeline_ = nullptr; + int32_t ret = sender->Start(); + EXPECT_EQ(ERR_DH_AVT_START_FAILED, ret); +} + HWTEST_F(AvAudioSenderEngineTest, Stop_001, testing::ext::TestSize.Level1) { std::string ownerName = "001"; @@ -180,6 +191,18 @@ HWTEST_F(AvAudioSenderEngineTest, Stop_001, testing::ext::TestSize.Level1) EXPECT_EQ(DH_AVT_SUCCESS, ret); } +HWTEST_F(AvAudioSenderEngineTest, Stop_002, testing::ext::TestSize.Level1) +{ + std::string ownerName = "001"; + std::string peerDevId = "pEid"; + auto sender = std::make_shared(ownerName, peerDevId); + sender->currentState_ = StateId::CH_CREATED; + sender->pipeline_ = nullptr; + sender->Start(); + int32_t ret = sender->Stop(); + EXPECT_EQ(ERR_DH_AVT_STOP_FAILED, ret); +} + HWTEST_F(AvAudioSenderEngineTest, SetParameter_001, testing::ext::TestSize.Level1) { std::string ownerName = "001"; @@ -365,6 +388,46 @@ HWTEST_F(AvAudioSenderEngineTest, SetParameter_012, testing::ext::TestSize.Level EXPECT_EQ(DH_AVT_SUCCESS, ret); } +HWTEST_F(AvAudioSenderEngineTest, SetParameter_013, testing::ext::TestSize.Level1) +{ + std::string ownerName = "ohos.dhardware.dscreen"; + std::string peerDevId = "pEid"; + std::string value = "500"; + auto sender = std::make_shared(ownerName, peerDevId); + sender->InitPipeline(); + sender->RegRespFunMap(); + + int32_t ret = sender->SetParameter(AVTransTag::FRAME_NUMBER, value); + EXPECT_EQ(ERR_DH_AVT_INVALID_PARAM, ret); +} + +HWTEST_F(AvAudioSenderEngineTest, SetParameter_014, testing::ext::TestSize.Level1) +{ + std::string ownerName = "ohos.dhardware.dscreen"; + std::string peerDevId = "pEid"; + std::string value = "500"; + auto sender = std::make_shared(ownerName, peerDevId); + sender->meta_ = nullptr; + sender->SetParameter(AVTransTag::VIDEO_WIDTH, "H264"); + sender->SetParameter(AVTransTag::VIDEO_HEIGHT, "1"); + sender->SetParameter(AVTransTag::VIDEO_FRAME_RATE, "2"); + sender->SetParameter(AVTransTag::AUDIO_BIT_RATE, "3"); + sender->SetParameter(AVTransTag::VIDEO_FRAME_RATE, "4"); + sender->SetParameter(AVTransTag::VIDEO_CODEC_TYPE, "5"); + sender->SetParameter(AVTransTag::AUDIO_CODEC_TYPE, "6"); + sender->SetParameter(AVTransTag::AUDIO_CHANNEL_MASK, "7"); + sender->SetParameter(AVTransTag::AUDIO_SAMPLE_RATE, "8"); + sender->SetParameter(AVTransTag::AUDIO_CHANNEL_LAYOUT, "9"); + sender->SetParameter(AVTransTag::AUDIO_SAMPLE_FORMAT, "10"); + sender->SetParameter(AVTransTag::AUDIO_FRAME_SIZE, "11"); + sender->SetParameter(AVTransTag::TIME_SYNC_RESULT, "12"); + sender->SetParameter(AVTransTag::START_AV_SYNC, "13"); + sender->SetParameter(AVTransTag::STOP_AV_SYNC, "14"); + sender->SetParameter(AVTransTag::SHARED_MEMORY_FD, "15"); + sender->SetParameter(AVTransTag::ENGINE_READY, "16"); + EXPECT_EQ(sender->meta_, nullptr); +} + HWTEST_F(AvAudioSenderEngineTest, PushData_001, testing::ext::TestSize.Level1) { std::string ownerName = "001"; @@ -425,6 +488,39 @@ HWTEST_F(AvAudioSenderEngineTest, PushData_005, testing::ext::TestSize.Level1) EXPECT_EQ(ERR_DH_AVT_PUSH_DATA_FAILED, ret); } +HWTEST_F(AvAudioSenderEngineTest, PushData_006, testing::ext::TestSize.Level1) +{ + std::string ownerName = "001"; + std::string peerDevId = "pEid"; + std::string value = "value"; + auto sender = std::make_shared(ownerName, peerDevId); + std::shared_ptr buffer = std::make_shared(); + sender->currentState_ = StateId::STARTED; + sender->avInput_ = std::make_shared("builtin.avtrans.audio.input", + Pipeline::FilterType::FILTERTYPE_SOURCE); + int32_t ret = sender->PushData(buffer); + EXPECT_EQ(ERR_DH_AVT_PUSH_DATA_FAILED, ret); +} + +HWTEST_F(AvAudioSenderEngineTest, Prepare_001, testing::ext::TestSize.Level1) +{ + std::string ownerName = "001"; + std::string peerDevId = "pEid"; + std::string value = "value"; + auto sender = std::make_shared(ownerName, peerDevId); + sender->avInput_ = std::make_shared("builtin.avtrans.audio.input", + Pipeline::FilterType::FILTERTYPE_SOURCE); + EXPECT_EQ(sender->Prepare(), Status::ERROR_INVALID_OPERATION); + + sender->avInput_ = std::make_shared("builtin.avtrans.audio.input", + Pipeline::FilterType::FILTERTYPE_SOURCE); + sender->pipeline_ = nullptr; + EXPECT_EQ(sender->Prepare(), Status::ERROR_INVALID_OPERATION); + + sender->pipeline_ = std::make_shared(); + EXPECT_EQ(sender->Prepare(), Status::OK); +} + HWTEST_F(AvAudioSenderEngineTest, PreparePipeline_001, testing::ext::TestSize.Level1) { std::string ownerName = "001"; @@ -482,6 +578,32 @@ HWTEST_F(AvAudioSenderEngineTest, PreparePipeline_005, testing::ext::TestSize.Le EXPECT_EQ(ERR_DH_AVT_NULL_POINTER, ret); } +HWTEST_F(AvAudioSenderEngineTest, PreparePipeline_006, testing::ext::TestSize.Level1) +{ + std::string ownerName = "001"; + std::string peerDevId = "pEid"; + std::string configParam = "value"; + auto sender = std::make_shared(ownerName, peerDevId); + sender->currentState_ = StateId::INITIALIZED; + sender->pipeline_ = std::make_shared(); + sender->meta_ = std::make_shared(); + int32_t ret = sender->PreparePipeline(configParam); + EXPECT_EQ(ERR_DH_AVT_PREPARE_FAILED, ret); +} + +HWTEST_F(AvAudioSenderEngineTest, PreparePipeline_007, testing::ext::TestSize.Level1) +{ + std::string ownerName = "001"; + std::string peerDevId = "pEid"; + std::string configParam = "value"; + auto sender = std::make_shared(ownerName, peerDevId); + sender->currentState_ = StateId::INITIALIZED; + sender->pipeline_ = nullptr; + sender->meta_ = std::make_shared(); + int32_t ret = sender->PreparePipeline(configParam); + EXPECT_EQ(ERR_DH_AVT_SET_PARAM_FAILED, ret); +} + HWTEST_F(AvAudioSenderEngineTest, StartDumpMediaData_001, testing::ext::TestSize.Level1) { std::string ownerName = "001"; @@ -568,6 +690,18 @@ HWTEST_F(AvAudioSenderEngineTest, SendMessage_004, testing::ext::TestSize.Level1 EXPECT_EQ(ERR_DH_AVT_INVALID_PARAM, ret); } +HWTEST_F(AvAudioSenderEngineTest, SendMessage_005, testing::ext::TestSize.Level1) +{ + std::string ownerName = OWNER_NAME_D_VIRMODEM_SPEAKER; + std::string peerDevId = "pEid"; + auto sender = std::make_shared(ownerName, peerDevId); + EventType type = EventType::EVENT_ADD_STREAM; + sender->NotifyStreamChange(type); + std::shared_ptr message = std::make_shared(); + int32_t ret = sender->SendMessage(message); + EXPECT_EQ(ERR_DH_AVT_INVALID_PARAM, ret); +} + HWTEST_F(AvAudioSenderEngineTest, RegisterSenderCallback_001, testing::ext::TestSize.Level1) { std::string ownerName = OWNER_NAME_D_SCREEN; diff --git a/av_transport/av_trans_engine/filters/test/av_trans_input_filter_test/av_trans_audio_input_filter_test.cpp b/av_transport/av_trans_engine/filters/test/av_trans_input_filter_test/av_trans_audio_input_filter_test.cpp index ef6381f8..1eb8fc19 100644 --- a/av_transport/av_trans_engine/filters/test/av_trans_input_filter_test/av_trans_audio_input_filter_test.cpp +++ b/av_transport/av_trans_engine/filters/test/av_trans_input_filter_test/av_trans_audio_input_filter_test.cpp @@ -16,6 +16,7 @@ #include "av_trans_audio_input_filter_test.h" #include "av_trans_audio_encoder_filter.h" #include "av_trans_constants.h" +#include "av_trans_types.h" using namespace testing::ext; using namespace OHOS::DistributedHardware; using namespace std; @@ -47,6 +48,18 @@ HWTEST_F(AvTransportAudioInputFilterTest, PrepareInputBuffer_001, testing::ext:: std::make_shared("builtin.avtrans.audio.input", Pipeline::FilterType::FILTERTYPE_SOURCE); ASSERT_TRUE(avAudioInputTest_ != nullptr); + avAudioInputTest_->inputBufQue_ = nullptr; + avAudioInputTest_->PrepareInputBuffer(); +} + +HWTEST_F(AvTransportAudioInputFilterTest, PrepareInputBuffer_002, testing::ext::TestSize.Level1) +{ + std::shared_ptr avAudioInputTest_ = + std::make_shared("builtin.avtrans.audio.input", + Pipeline::FilterType::FILTERTYPE_SOURCE); + ASSERT_TRUE(avAudioInputTest_ != nullptr); + avAudioInputTest_->inputBufQue_ = Media::AVBufferQueue::Create(0, Media::MemoryType::VIRTUAL_MEMORY, + "AudioInputTest"); avAudioInputTest_->PrepareInputBuffer(); } @@ -61,6 +74,46 @@ HWTEST_F(AvTransportAudioInputFilterTest, ProcessAndSendBuffer_001, testing::ext EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); } +HWTEST_F(AvTransportAudioInputFilterTest, ProcessAndSendBuffer_002, testing::ext::TestSize.Level1) +{ + std::shared_ptr avAudioInputTest_ = + std::make_shared("builtin.avtrans.audio.input", + Pipeline::FilterType::FILTERTYPE_SOURCE); + ASSERT_TRUE(avAudioInputTest_ != nullptr); + std::shared_ptr audioData = std::make_shared(); + Status ret = avAudioInputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + // Create memory + if (audioData->memory_ == nullptr) { + audioData->memory_ = std::make_shared(); + ASSERT_TRUE(audioData->memory_ != nullptr); + } + ret = avAudioInputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + // Create audioData meta + if (audioData->meta_ == nullptr) { + audioData->meta_ = std::make_shared(); + ASSERT_TRUE(audioData->meta_ != nullptr); + } + ret = avAudioInputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + // set meta parameter + if (avAudioInputTest_->meta_ == nullptr) { + avAudioInputTest_->meta_ = std::make_shared(); + ASSERT_TRUE(avAudioInputTest_->meta_ != nullptr); + } + uint64_t pts = 8434234234; + uint32_t frameNumber = 20; + BufferDataType dataType = BufferDataType::AUDIO; + + audioData->meta_->SetData(Media::Tag::MEDIA_STREAM_TYPE, dataType); + audioData->meta_->SetData(Media::Tag::AUDIO_OBJECT_NUMBER, frameNumber); + audioData->meta_->SetData(Media::Tag::USER_FRAME_PTS, pts); + + ret = avAudioInputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); +} + HWTEST_F(AvTransportAudioInputFilterTest, DoPrepare_001, testing::ext::TestSize.Level1) { std::shared_ptr avAudioInputTest_ = @@ -71,6 +124,17 @@ HWTEST_F(AvTransportAudioInputFilterTest, DoPrepare_001, testing::ext::TestSize. EXPECT_NE(Status::OK, ret); } +HWTEST_F(AvTransportAudioInputFilterTest, DoPrepare_002, testing::ext::TestSize.Level1) +{ + std::shared_ptr avAudioInputTest_ = + std::make_shared("builtin.avtrans.audio.input", + Pipeline::FilterType::FILTERTYPE_SOURCE); + ASSERT_TRUE(avAudioInputTest_ != nullptr); + avAudioInputTest_->meta_ = std::make_shared(); + Status ret = avAudioInputTest_->DoPrepare(); + EXPECT_NE(Status::OK, ret); +} + HWTEST_F(AvTransportAudioInputFilterTest, DoStart_001, testing::ext::TestSize.Level1) { std::shared_ptr avAudioInputTest_ = diff --git a/av_transport/av_trans_engine/filters/test/av_trans_input_filter_test/av_trans_bus_input_filter_test.cpp b/av_transport/av_trans_engine/filters/test/av_trans_input_filter_test/av_trans_bus_input_filter_test.cpp index 897b0e64..d32904bc 100644 --- a/av_transport/av_trans_engine/filters/test/av_trans_input_filter_test/av_trans_bus_input_filter_test.cpp +++ b/av_transport/av_trans_engine/filters/test/av_trans_input_filter_test/av_trans_bus_input_filter_test.cpp @@ -16,6 +16,7 @@ #include "av_trans_bus_input_filter_test.h" #include "av_trans_constants.h" #include "av_trans_audio_encoder_filter.h" +#include "av_trans_types.h" using namespace testing::ext; using namespace OHOS::DistributedHardware; using namespace std; @@ -80,6 +81,47 @@ HWTEST_F(AvTransportBusInputFilterTest, ProcessAndSendBuffer_001, testing::ext:: EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); } + +HWTEST_F(AvTransportBusInputFilterTest, ProcessAndSendBuffer_002, testing::ext::TestSize.Level1) +{ + std::shared_ptr avBusInputTest_ = + std::make_shared("builtin.avtrans.audio.input", + Pipeline::FilterType::FILTERTYPE_SOURCE); + ASSERT_TRUE(avBusInputTest_ != nullptr); + std::shared_ptr audioData = std::make_shared(); + Status ret = avBusInputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + // Create memory + if (audioData->memory_ == nullptr) { + audioData->memory_ = std::make_shared(); + ASSERT_TRUE(audioData->memory_ != nullptr); + } + ret = avBusInputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + // Create audioData meta + if (audioData->meta_ == nullptr) { + audioData->meta_ = std::make_shared(); + ASSERT_TRUE(audioData->meta_ != nullptr); + } + ret = avBusInputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + // set meta parameter + if (avBusInputTest_->meta_ == nullptr) { + avBusInputTest_->meta_ = std::make_shared(); + ASSERT_TRUE(avBusInputTest_->meta_ != nullptr); + } + uint64_t pts = 8434234234; + uint32_t frameNumber = 20; + BufferDataType dataType = BufferDataType::AUDIO; + + audioData->meta_->SetData(Media::Tag::MEDIA_STREAM_TYPE, dataType); + audioData->meta_->SetData(Media::Tag::AUDIO_OBJECT_NUMBER, frameNumber); + audioData->meta_->SetData(Media::Tag::USER_FRAME_PTS, pts); + + ret = avBusInputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); +} + HWTEST_F(AvTransportBusInputFilterTest, DoProcessOutputBuffer_001, testing::ext::TestSize.Level1) { std::shared_ptr avBusInputTest_ = diff --git a/av_transport/av_trans_engine/filters/test/av_trans_output_filter_test/av_trans_dsoftbus_output_filter_test.cpp b/av_transport/av_trans_engine/filters/test/av_trans_output_filter_test/av_trans_dsoftbus_output_filter_test.cpp index a2440a07..198057ee 100644 --- a/av_transport/av_trans_engine/filters/test/av_trans_output_filter_test/av_trans_dsoftbus_output_filter_test.cpp +++ b/av_transport/av_trans_engine/filters/test/av_trans_output_filter_test/av_trans_dsoftbus_output_filter_test.cpp @@ -16,6 +16,8 @@ #include "av_trans_dsoftbus_output_filter_test.h" #include "av_trans_audio_encoder_filter.h" #include "av_trans_constants.h" +#include "av_trans_types.h" +#include "cJSON.h" using namespace testing::ext; using namespace OHOS::DistributedHardware; using namespace std; @@ -216,5 +218,83 @@ HWTEST_F(AvTransportAudioOutputFilterTest, OnUnLinked_001, testing::ext::TestSiz EXPECT_EQ(Status::OK, ret); } +HWTEST_F(AvTransportAudioOutputFilterTest, DoPrepare_002, testing::ext::TestSize.Level1) +{ + ASSERT_TRUE(dSoftbusOutputTest_ != nullptr); + + std::shared_ptr meta = std::make_shared(); + ASSERT_TRUE(meta != nullptr); + dSoftbusOutputTest_->SetParameter(meta); + Status ret = dSoftbusOutputTest_->DoPrepare(); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + cJSON *jsonObj = cJSON_CreateObject(); + ASSERT_TRUE(jsonObj != nullptr); + std::string ownerName = "audiotest"; + cJSON_AddStringToObject(jsonObj, KEY_ONWER_NAME.c_str(), ownerName.c_str()); + auto str = cJSON_PrintUnformatted(jsonObj); + ASSERT_TRUE(str != nullptr); + std::string jsonStr = std::string(str); + cJSON_free(str); + meta->SetData(Media::Tag::MEDIA_DESCRIPTION, jsonStr); + dSoftbusOutputTest_->SetParameter(meta); + ret = dSoftbusOutputTest_->DoPrepare(); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + std::string peerDevId = "2"; + cJSON_AddStringToObject(jsonObj, KEY_PEERDEVID_NAME.c_str(), peerDevId.c_str()); + str = cJSON_PrintUnformatted(jsonObj); + ASSERT_TRUE(str != nullptr); + jsonStr = std::string(str); + cJSON_free(str); + cJSON_Delete(jsonObj); + meta->SetData(Media::Tag::MEDIA_DESCRIPTION, jsonStr); + dSoftbusOutputTest_->SetParameter(meta); + ret = dSoftbusOutputTest_->DoPrepare(); + EXPECT_EQ(Status::OK, ret); +} + +HWTEST_F(AvTransportAudioOutputFilterTest, MarshalAudioMeta_001, testing::ext::TestSize.Level1) +{ + ASSERT_TRUE(dSoftbusOutputTest_ != nullptr); + std::string json = dSoftbusOutputTest_->MarshalAudioMeta(BufferDataType::AUDIO, 1000, 1); + EXPECT_EQ(json, R"({"meta_data_type":0,"meta_timestamp":1000,"meta_frame_number":1})"); +} + +HWTEST_F(AvTransportAudioOutputFilterTest, ProcessAndSendBuffer_002, testing::ext::TestSize.Level1) +{ + ASSERT_TRUE(dSoftbusOutputTest_ != nullptr); + std::shared_ptr audioData = std::make_shared(); + Status ret = dSoftbusOutputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + // Create memory + if (audioData->memory_ == nullptr) { + audioData->memory_ = std::make_shared(); + ASSERT_TRUE(audioData->memory_ != nullptr); + } + ret = dSoftbusOutputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + // Create audioData meta + if (audioData->meta_ == nullptr) { + audioData->meta_ = std::make_shared(); + ASSERT_TRUE(audioData->meta_ != nullptr); + } + ret = dSoftbusOutputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_NULL_POINTER, ret); + // set meta parameter + if (dSoftbusOutputTest_->meta_ == nullptr) { + dSoftbusOutputTest_->meta_ = std::make_shared(); + ASSERT_TRUE(dSoftbusOutputTest_->meta_ != nullptr); + } + uint64_t pts = 8434234234; + uint32_t frameNumber = 20; + BufferDataType dataType = BufferDataType::AUDIO; + + audioData->meta_->SetData(Media::Tag::MEDIA_STREAM_TYPE, dataType); + audioData->meta_->SetData(Media::Tag::AUDIO_OBJECT_NUMBER, frameNumber); + audioData->meta_->SetData(Media::Tag::USER_FRAME_PTS, pts); + + ret = dSoftbusOutputTest_->ProcessAndSendBuffer(audioData); + EXPECT_EQ(Status::ERROR_INVALID_OPERATION, ret); +} + } // namespace DistributedHardware } // namespace OHOS \ No newline at end of file -- Gitee