From c3445c37af9073355b0877c13a252f78a1bcfb7f Mon Sep 17 00:00:00 2001 From: w30042960 Date: Mon, 6 May 2024 17:12:55 +0800 Subject: [PATCH] moadify ut Signed-off-by: w30042960 --- common/dfx_utils/test/unittest/BUILD.gn | 14 +- .../unittest/include/daudio_hitrace_test.h | 36 +++++ .../unittest/src/daudio_hidumper_test.cpp | 13 ++ .../test/unittest/src/daudio_hitrace_test.cpp | 54 ++++++++ .../src/daudio_sink_proxy_test.cpp | 14 ++ .../src/daudio_manager_callback_test.cpp | 51 +++++++ services/audiomanager/test/unittest/BUILD.gn | 2 + .../managersink/src/daudio_sink_dev_test.cpp | 47 ++++++- .../src/daudio_sink_manager_test.cpp | 20 ++- .../test/unittest/servicesink/BUILD.gn | 44 +++++- .../include/daudio_sink_stub_test.h | 36 +++++ .../src/daudio_sink_service_test.cpp | 15 ++- .../servicesink/src/daudio_sink_stub_test.cpp | 125 ++++++++++++++++++ .../test/unittest/servicesource/BUILD.gn | 46 ++++++- .../include/daudio_source_stub_test.h | 36 +++++ .../src/daudio_source_stub_test.cpp | 121 +++++++++++++++++ .../src/av_receiver_engine_transport_test.cpp | 2 + .../src/av_sender_engine_transport_test.cpp | 2 + 18 files changed, 669 insertions(+), 9 deletions(-) create mode 100644 common/dfx_utils/test/unittest/include/daudio_hitrace_test.h create mode 100644 common/dfx_utils/test/unittest/src/daudio_hitrace_test.cpp create mode 100644 services/audiomanager/test/unittest/servicesink/include/daudio_sink_stub_test.h create mode 100644 services/audiomanager/test/unittest/servicesink/src/daudio_sink_stub_test.cpp create mode 100644 services/audiomanager/test/unittest/servicesource/include/daudio_source_stub_test.h create mode 100644 services/audiomanager/test/unittest/servicesource/src/daudio_source_stub_test.cpp diff --git a/common/dfx_utils/test/unittest/BUILD.gn b/common/dfx_utils/test/unittest/BUILD.gn index 92fa89cf..9ccb142d 100644 --- a/common/dfx_utils/test/unittest/BUILD.gn +++ b/common/dfx_utils/test/unittest/BUILD.gn @@ -56,9 +56,19 @@ config("module_private_config") { ohos_unittest("DAudioDfxTest") { module_out_path = module_out_path - sources = - [ "${common_path}/dfx_utils/test/unittest/src/daudio_hidumper_test.cpp" ] + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + "-Dprivate=public", + "-Dprotected=public", + ] + sources = [ + "${common_path}/dfx_utils/test/unittest/src/daudio_hidumper_test.cpp", + "${common_path}/dfx_utils/test/unittest/src/daudio_hitrace_test.cpp", + ] configs = [ ":module_private_config" ] deps = [ diff --git a/common/dfx_utils/test/unittest/include/daudio_hitrace_test.h b/common/dfx_utils/test/unittest/include/daudio_hitrace_test.h new file mode 100644 index 00000000..68ae5ea1 --- /dev/null +++ b/common/dfx_utils/test/unittest/include/daudio_hitrace_test.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_DAUDIO_HITRACE_TEST_H +#define OHOS_DAUDIO_HITRACE_TEST_H + +#include + +#include "daudio_hitrace.h" + +namespace OHOS { +namespace DistributedHardware { +class DAudioHitraceTest : public testing::Test { +public: + static void SetUpTestCase(void); + static void TearDownTestCase(void); + void SetUp(); + void TearDown(); + + std::shared_ptr hitrace_ = nullptr; +}; +} // namespace DistributedHardware +} // namespace OHOS +#endif // OHOS_DAUDIO_HITRACE_TEST_H \ No newline at end of file diff --git a/common/dfx_utils/test/unittest/src/daudio_hidumper_test.cpp b/common/dfx_utils/test/unittest/src/daudio_hidumper_test.cpp index c505f99f..6fadd48b 100644 --- a/common/dfx_utils/test/unittest/src/daudio_hidumper_test.cpp +++ b/common/dfx_utils/test/unittest/src/daudio_hidumper_test.cpp @@ -80,5 +80,18 @@ HWTEST_F(DAudioHidumperTest, GetSinkInfo_001, TestSize.Level1) std::string result = "123"; EXPECT_NE(HDF_SUCCESS, hidumper_->GetSinkInfo(result)); } + +/** + * @tc.name: StartDumpData_001 + * @tc.desc: Verify the StartDumpData function. + * @tc.type: FUNC + * @tc.require: AR000H0E5F + */ +HWTEST_F(DAudioHidumperTest, StartDumpData_001, TestSize.Level1) +{ + std::string result = ""; + EXPECT_EQ(HDF_SUCCESS, hidumper_->StartDumpData(result)); + EXPECT_EQ(true, hidumper_->QueryDumpDataFlag()); +} } // DistributedHardware } // OHOS diff --git a/common/dfx_utils/test/unittest/src/daudio_hitrace_test.cpp b/common/dfx_utils/test/unittest/src/daudio_hitrace_test.cpp new file mode 100644 index 00000000..53ee4722 --- /dev/null +++ b/common/dfx_utils/test/unittest/src/daudio_hitrace_test.cpp @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "daudio_hitrace_test.h" + +using namespace testing::ext; + +namespace OHOS { +namespace DistributedHardware { +void DAudioHitraceTest::SetUpTestCase(void) {} + +void DAudioHitraceTest::TearDownTestCase(void) {} + +void DAudioHitraceTest::SetUp() +{ + hitrace_ = std::make_shared("value", false, false); + hitrace_ = std::make_shared("value", true, false); +} + +void DAudioHitraceTest::TearDown() +{ + hitrace_ = nullptr; +} + +/** + * @tc.name: End_001 + * @tc.desc: Verify the End function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioHitraceTest, End_001, TestSize.Level1) +{ + std::string result = "123"; + hitrace_->isFinished_ = false; + hitrace_->End(); + hitrace_->isShowLog_ = false; + hitrace_->End(); + hitrace_->isFinished_ = true; + hitrace_->End(); +} +} // DistributedHardware +} // OHOS diff --git a/interfaces/inner_kits/native_cpp/test/unittest/audiosinktest/src/daudio_sink_proxy_test.cpp b/interfaces/inner_kits/native_cpp/test/unittest/audiosinktest/src/daudio_sink_proxy_test.cpp index e9e0370a..24d50501 100644 --- a/interfaces/inner_kits/native_cpp/test/unittest/audiosinktest/src/daudio_sink_proxy_test.cpp +++ b/interfaces/inner_kits/native_cpp/test/unittest/audiosinktest/src/daudio_sink_proxy_test.cpp @@ -99,5 +99,19 @@ HWTEST_F(DAudioSinkProxyTest, InitSink_001, TestSize.Level1) ret = dAudioProxy->ReleaseSink(); EXPECT_EQ(DH_SUCCESS, ret); } + +/** + * @tc.name: PauseDistributedHardware_001 + * @tc.desc: Verify the PauseDistributedHardware function. + * @tc.type: FUNC + * @tc.require: AR000H0E5F + */ +HWTEST_F(DAudioSinkProxyTest, PauseDistributedHardware_001, TestSize.Level1) +{ + std::string networkId = "123"; + EXPECT_EQ(DH_SUCCESS, dAudioProxy->PauseDistributedHardware(networkId)); + EXPECT_EQ(DH_SUCCESS, dAudioProxy->ResumeDistributedHardware(networkId)); + EXPECT_EQ(DH_SUCCESS, dAudioProxy->StopDistributedHardware(networkId)); +} } // namespace DistributedHardware } // namespace OHOS diff --git a/services/audiohdiproxy/test/unittest/daudio_manager_callback/src/daudio_manager_callback_test.cpp b/services/audiohdiproxy/test/unittest/daudio_manager_callback/src/daudio_manager_callback_test.cpp index 7f5e4288..9d0e3b38 100644 --- a/services/audiohdiproxy/test/unittest/daudio_manager_callback/src/daudio_manager_callback_test.cpp +++ b/services/audiohdiproxy/test/unittest/daudio_manager_callback/src/daudio_manager_callback_test.cpp @@ -188,6 +188,24 @@ HWTEST_F(DAudioManagerCallbackTest, NotifyEvent_002, TestSize.Level1) event.type = AudioEventHDF::AUDIO_EVENT_CHANGE_PLAY_STATUS; event.content = "HDF_SUCCESS"; EXPECT_EQ(HDF_SUCCESS, manCallback_->NotifyEvent(streamId_, event)); + event.type = AudioEventHDF::AUDIO_EVENT_MMAP_START_SPK; + event.content = "HDF_SUCCESS"; + EXPECT_EQ(HDF_SUCCESS, manCallback_->NotifyEvent(streamId_, event)); + event.type = AudioEventHDF::AUDIO_EVENT_MMAP_STOP_SPK; + event.content = "HDF_SUCCESS"; + EXPECT_EQ(HDF_SUCCESS, manCallback_->NotifyEvent(streamId_, event)); + event.type = AudioEventHDF::AUDIO_EVENT_MMAP_START_MIC; + event.content = "HDF_SUCCESS"; + EXPECT_EQ(HDF_SUCCESS, manCallback_->NotifyEvent(streamId_, event)); + event.type = AudioEventHDF::AUDIO_EVENT_MMAP_STOP_MIC; + event.content = "HDF_SUCCESS"; + EXPECT_EQ(HDF_SUCCESS, manCallback_->NotifyEvent(streamId_, event)); + event.type = AudioEventHDF::AUDIO_EVENT_START; + event.content = "HDF_SUCCESS"; + EXPECT_EQ(HDF_SUCCESS, manCallback_->NotifyEvent(streamId_, event)); + event.type = AudioEventHDF::AUDIO_EVENT_STOP; + event.content = "HDF_SUCCESS"; + EXPECT_EQ(HDF_SUCCESS, manCallback_->NotifyEvent(streamId_, event)); event.type = -1; event.content = "HDF_SUCCESS"; EXPECT_EQ(HDF_SUCCESS, manCallback_->NotifyEvent(streamId_, event)); @@ -278,5 +296,38 @@ HWTEST_F(DAudioManagerCallbackTest, ReadStreamData_002, TestSize.Level1) EXPECT_EQ(HDF_SUCCESS, manCallback_->ReadStreamData(streamId_, data)); EXPECT_EQ(HDF_SUCCESS, manCallback_->DestroyStream(streamId_)); } + +/** + * @tc.name: ReadMmapPosition_002 + * @tc.desc: Verify the ReadMmapPosition function. + * @tc.type: FUNC + * @tc.require: AR000H0E6H + */ +HWTEST_F(DAudioManagerCallbackTest, ReadMmapPosition_001, TestSize.Level1) +{ + int32_t streamId = 0; + uint64_t frames = 1; + OHOS::HDI::DistributedAudio::Audioext::V2_0::CurrentTime time; + EXPECT_EQ(HDF_SUCCESS, manCallback_->ReadMmapPosition(streamId, frames, time)); + manCallback_->callback_ = std::make_shared(); + EXPECT_EQ(HDF_SUCCESS, manCallback_->ReadMmapPosition(streamId, frames, time)); +} + +/** + * @tc.name: RefreshAshmemInfo_002 + * @tc.desc: Verify the RefreshAshmemInfo function. + * @tc.type: FUNC + * @tc.require: AR000H0E6H + */ +HWTEST_F(DAudioManagerCallbackTest, RefreshAshmemInfo_001, TestSize.Level1) +{ + int32_t streamId = 1; + int fd = 1; + int32_t ashmemLength = 240; + int32_t lengthPerTrans = 960; + EXPECT_EQ(HDF_SUCCESS, manCallback_->RefreshAshmemInfo(streamId, fd, ashmemLength, lengthPerTrans)); + manCallback_->callback_ = std::make_shared(); + EXPECT_EQ(HDF_SUCCESS, manCallback_->RefreshAshmemInfo(streamId, fd, ashmemLength, lengthPerTrans)); +} } // DistributedHardware } // OHOS \ No newline at end of file diff --git a/services/audiomanager/test/unittest/BUILD.gn b/services/audiomanager/test/unittest/BUILD.gn index 38dae039..3c309f88 100644 --- a/services/audiomanager/test/unittest/BUILD.gn +++ b/services/audiomanager/test/unittest/BUILD.gn @@ -21,7 +21,9 @@ group("daudio_manager_test") { "${common_path}/dfx_utils/test/unittest:DAudioDfxTest", "${services_path}/audiomanager/test/unittest/managersink:manager_sink_test", "${services_path}/audiomanager/test/unittest/servicesink:DaudioSinkServiceTest", + "${services_path}/audiomanager/test/unittest/servicesink:DaudioSinkStubTest", "${services_path}/audiomanager/test/unittest/servicesource:DaudioSourceServiceTest", + "${services_path}/audiomanager/test/unittest/servicesource:DaudioSourceStubTest", "${services_path}/audiomanager/test/unittest/sourcedevice:daudio_source_dev_test", "${services_path}/audiomanager/test/unittest/sourcemanager:daudio_source_mgr_test", "${services_path}/common/test/unittest/audiodata:audio_data_test", diff --git a/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp b/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp index 5c326628..aae3b14c 100644 --- a/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp +++ b/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp @@ -142,7 +142,28 @@ HWTEST_F(DAudioSinkDevTest, TaskOpenDSpeaker_002, TestSize.Level1) */ HWTEST_F(DAudioSinkDevTest, TaskOpenDSpeaker_003, TestSize.Level1) { - std::string args = "{\"KEY_DH_ID\":\"1\", \"KEY_AUDIO_PARAM\":\"param\"}}"; + std::string devId = "1"; + int32_t dhId = 1; + cJSON *jobject = cJSON_CreateObject(); + CHECK_NULL_VOID(jobject); + cJSON_AddStringToObject(jobject, KEY_DH_ID, "1"); + cJSON_AddNumberToObject(jobject, KEY_SAMPLING_RATE, 0); + cJSON_AddNumberToObject(jobject, KEY_FORMAT, 0); + cJSON_AddNumberToObject(jobject, KEY_CHANNELS, 0); + cJSON_AddNumberToObject(jobject, KEY_CONTENT_TYPE, 0); + cJSON_AddNumberToObject(jobject, KEY_STREAM_USAGE, 0); + cJSON_AddNumberToObject(jobject, KEY_SOURCE_TYPE, 0); + char *jsonData = cJSON_PrintUnformatted(jobject); + if (jsonData == nullptr) { + cJSON_Delete(jobject); + return; + } + std::string args(jsonData); + cJSON_free(jsonData); + cJSON_Delete(jobject); + EXPECT_NE(DH_SUCCESS, sinkDev_->TaskOpenDSpeaker(args)); + auto spkClient = std::make_shared(devId, dhId, sinkDev_); + sinkDev_->spkClientMap_.insert(std::make_pair(dhId, spkClient)); EXPECT_NE(DH_SUCCESS, sinkDev_->TaskOpenDSpeaker(args)); } @@ -228,7 +249,29 @@ HWTEST_F(DAudioSinkDevTest, TaskOpenDMic_001, TestSize.Level1) */ HWTEST_F(DAudioSinkDevTest, TaskOpenDMic_002, TestSize.Level1) { - std::string args = "args"; + sinkDev_->isDevLevelStatus_ = true; + std::string devId = "1"; + int32_t dhId = 1; + cJSON *jobject = cJSON_CreateObject(); + CHECK_NULL_VOID(jobject); + cJSON_AddStringToObject(jobject, KEY_DH_ID, "1"); + cJSON_AddNumberToObject(jobject, KEY_SAMPLING_RATE, 0); + cJSON_AddNumberToObject(jobject, KEY_FORMAT, 0); + cJSON_AddNumberToObject(jobject, KEY_CHANNELS, 0); + cJSON_AddNumberToObject(jobject, KEY_CONTENT_TYPE, 0); + cJSON_AddNumberToObject(jobject, KEY_STREAM_USAGE, 0); + cJSON_AddNumberToObject(jobject, KEY_SOURCE_TYPE, 0); + char *jsonData = cJSON_PrintUnformatted(jobject); + if (jsonData == nullptr) { + cJSON_Delete(jobject); + return; + } + std::string args(jsonData); + cJSON_free(jsonData); + cJSON_Delete(jobject); + EXPECT_NE(DH_SUCCESS, sinkDev_->TaskOpenDMic(args)); + auto micClient = std::make_shared(devId, dhId, sinkDev_); + sinkDev_->micClientMap_.insert(std::make_pair(DEFAULT_CAPTURE_ID, micClient)); EXPECT_NE(DH_SUCCESS, sinkDev_->TaskOpenDMic(args)); } diff --git a/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp b/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp index 6530a18e..08c420c4 100644 --- a/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp +++ b/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp @@ -163,7 +163,6 @@ HWTEST_F(DAudioSinkManagerTest, PauseDistributedHardware_001, TestSize.Level1) } sptr dAudioSinkIpcCallbackProxy(new DAudioSinkIpcCallbackProxy(remoteObject)); auto dev = std::make_shared(networkId, dAudioSinkIpcCallbackProxy); - daudioSinkManager.audioDevMap_.emplace(devId, dev); EXPECT_EQ(DH_SUCCESS, daudioSinkManager.PauseDistributedHardware(networkId)); EXPECT_EQ(DH_SUCCESS, daudioSinkManager.ResumeDistributedHardware(networkId)); EXPECT_EQ(DH_SUCCESS, daudioSinkManager.StopDistributedHardware(networkId)); @@ -247,10 +246,27 @@ HWTEST_F(DAudioSinkManagerTest, CheckDeviceSecurityLevel_001, TestSize.Level1) */ HWTEST_F(DAudioSinkManagerTest, GetUdidByNetworkId_001, TestSize.Level1) { - std::string networkId = ""; + std::string networkId; EXPECT_EQ("", daudioSinkManager.GetUdidByNetworkId(networkId)); networkId = "123"; EXPECT_EQ("", daudioSinkManager.GetUdidByNetworkId(networkId)); } + +/** + * @tc.name: OnProviderEvent_001 + * @tc.desc: Verify the OnProviderEvent function. + * @tc.type: FUNC + * @tc.require: AR000H0E5F + */ +HWTEST_F(DAudioSinkManagerTest, OnProviderEvent_001, TestSize.Level1) +{ + AVTransEvent event1 = { EventType::EVENT_CHANNEL_OPENED, "", ""}; + daudioSinkManager.providerListener_ = std::make_shared(); + EXPECT_EQ(DH_SUCCESS, daudioSinkManager.providerListener_->OnProviderEvent(event1)); + AVTransEvent event2 = { EventType::EVENT_CHANNEL_CLOSED, "", ""}; + EXPECT_EQ(DH_SUCCESS, daudioSinkManager.providerListener_->OnProviderEvent(event2)); + AVTransEvent event3 = { EventType::EVENT_REMOVE_STREAM, "", ""}; + EXPECT_EQ(DH_SUCCESS, daudioSinkManager.providerListener_->OnProviderEvent(event3)); +} } // DistributedHardware } // OHOS diff --git a/services/audiomanager/test/unittest/servicesink/BUILD.gn b/services/audiomanager/test/unittest/servicesink/BUILD.gn index b204c071..80186d8f 100644 --- a/services/audiomanager/test/unittest/servicesink/BUILD.gn +++ b/services/audiomanager/test/unittest/servicesink/BUILD.gn @@ -79,7 +79,49 @@ ohos_unittest("DaudioSinkServiceTest") { ] } +## UnitTest daudio_sink_stub_test +ohos_unittest("DaudioSinkStubTest") { + module_out_path = module_out_path + + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + "-Dprivate=public", + "-Dprotected=public", + ] + + sources = [ "${services_path}/audiomanager/test/unittest/servicesink/src/daudio_sink_stub_test.cpp" ] + + configs = [ ":module_private_config" ] + + deps = [ + "${services_path}/audiomanager/servicesink:distributed_audio_sink", + "//third_party/googletest:gmock", + "//third_party/googletest:gtest_main", + ] + + external_deps = [ + "access_token:libaccesstoken_sdk", + "access_token:libtokenid_sdk", + "audio_framework:audio_capturer", + "audio_framework:audio_client", + "audio_framework:audio_renderer", + "c_utils:utils", + "dsoftbus:softbus_client", + "hisysevent:libhisysevent", + "hitrace:hitrace_meter", + "ipc:ipc_core", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + ] +} + group("service_sink_test") { testonly = true - deps = [ ":DaudioSinkServiceTest" ] + deps = [ + ":DaudioSinkServiceTest", + ":DaudioSinkStubTest", + ] } diff --git a/services/audiomanager/test/unittest/servicesink/include/daudio_sink_stub_test.h b/services/audiomanager/test/unittest/servicesink/include/daudio_sink_stub_test.h new file mode 100644 index 00000000..5bd3b8bf --- /dev/null +++ b/services/audiomanager/test/unittest/servicesink/include/daudio_sink_stub_test.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef DAUDIO_SINK_STUB_TEST_H +#define DAUDIO_SINK_STUB_TEST_H + +#include + +#include "daudio_sink_stub.h" +#include "daudio_sink_service.h" + +namespace OHOS { +namespace DistributedHardware { +class DAudioSinkStubTest : public testing::Test { +public: + static void SetUpTestCase(void); + static void TearDownTestCase(void); + void SetUp(); + void TearDown(); + std::shared_ptr sinkStub_ = nullptr; +}; +} // namespace DistributedHardware +} // namespace OHOS +#endif // OHOS_DAUDIO_SINK_DEV_TEST_H \ No newline at end of file diff --git a/services/audiomanager/test/unittest/servicesink/src/daudio_sink_service_test.cpp b/services/audiomanager/test/unittest/servicesink/src/daudio_sink_service_test.cpp index 4283f76d..c403ae28 100644 --- a/services/audiomanager/test/unittest/servicesink/src/daudio_sink_service_test.cpp +++ b/services/audiomanager/test/unittest/servicesink/src/daudio_sink_service_test.cpp @@ -141,10 +141,23 @@ HWTEST_F(DAudioSinkServiceTest, Dump_001, TestSize.Level1) order = u"--stopDump"; args.push_back(order); EXPECT_EQ(DH_SUCCESS, sinkSrv_->Dump(fd, args)); - args.pop_back(); order = u"--illegal"; args.push_back(order); EXPECT_EQ(DH_SUCCESS, sinkSrv_->Dump(fd, args)); } + +/** + * @tc.name: PauseDistributedHardware_001 + * @tc.desc: Verify the PauseDistributedHardware function. + * @tc.type: FUNC + * @tc.require: AR000H0E5F + */ +HWTEST_F(DAudioSinkServiceTest, PauseDistributedHardware_001, TestSize.Level1) +{ + std::string networkId = "1"; + EXPECT_EQ(DH_SUCCESS, sinkSrv_->PauseDistributedHardware(networkId)); + EXPECT_EQ(DH_SUCCESS, sinkSrv_->ResumeDistributedHardware(networkId)); + EXPECT_EQ(DH_SUCCESS, sinkSrv_->StopDistributedHardware(networkId)); +} } // DistributedHardware } // OHOS diff --git a/services/audiomanager/test/unittest/servicesink/src/daudio_sink_stub_test.cpp b/services/audiomanager/test/unittest/servicesink/src/daudio_sink_stub_test.cpp new file mode 100644 index 00000000..afda823d --- /dev/null +++ b/services/audiomanager/test/unittest/servicesink/src/daudio_sink_stub_test.cpp @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use sinkDev_ file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "daudio_sink_stub_test.h" + +#include "accesstoken_kit.h" +#include "ipc_skeleton.h" +#include "tokenid_kit.h" + +#include "audio_event.h" +#include "daudio_constants.h" +#include "daudio_errorcode.h" +#include "daudio_ipc_interface_code.h" +#include "daudio_sink_ipc_callback_proxy.h" +#include "daudio_sink_load_callback.h" + +using namespace testing::ext; + +namespace OHOS { +namespace DistributedHardware { +void DAudioSinkStubTest::SetUpTestCase(void) {} + +void DAudioSinkStubTest::TearDownTestCase(void) {} + +void DAudioSinkStubTest::SetUp() +{ + uint32_t saId = 6666; + bool runOnCreate = true; + sinkStub_ = std::make_shared(saId, runOnCreate); +} + +void DAudioSinkStubTest::TearDown() +{ + sinkStub_ = nullptr; +} + +/** + * @tc.name: OnRemoteRequest_001 + * @tc.desc: Verify the OnRemoteRequest function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSinkStubTest, OnRemoteRequest_001, TestSize.Level1) +{ + int32_t code = 0; + MessageParcel data; + MessageParcel reply; + MessageOption option; + EXPECT_EQ(ERR_DH_AUDIO_SA_INVALID_INTERFACE_TOKEN, sinkStub_->OnRemoteRequest(code, data, reply, option)); +} + +/** + * @tc.name: VerifyPermission_001 + * @tc.desc: Verify the VerifyPermission function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSinkStubTest, VerifyPermission_001, TestSize.Level1) +{ + EXPECT_EQ(false, sinkStub_->VerifyPermission()); +} + +/** + * @tc.name: InitSinkInner_001 + * @tc.desc: Verify the InitSinkInner function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSinkStubTest, InitSinkInner_001, TestSize.Level1) +{ + MessageParcel data; + MessageParcel reply; + MessageOption option; + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sinkStub_->InitSinkInner(data, reply, option)); + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sinkStub_->ReleaseSinkInner(data, reply, option)); +} + +/** + * @tc.name: PauseDistributedHardwareInner_001 + * @tc.desc: Verify the PauseDistributedHardwareInner function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSinkStubTest, PauseDistributedHardwareInner_001, TestSize.Level1) +{ + MessageParcel data; + MessageParcel reply; + MessageOption option; + EXPECT_EQ(ERR_DH_AUDIO_ACCESS_PERMISSION_CHECK_FAIL, + sinkStub_->PauseDistributedHardwareInner(data, reply, option)); + EXPECT_EQ(ERR_DH_AUDIO_ACCESS_PERMISSION_CHECK_FAIL, + sinkStub_->ResumeDistributedHardwareInner(data, reply, option)); + EXPECT_EQ(ERR_DH_AUDIO_ACCESS_PERMISSION_CHECK_FAIL, + sinkStub_->StopDistributedHardwareInner(data, reply, option)); +} + +/** + * @tc.name: SubscribeLocalHardwareInner_001 + * @tc.desc: Verify the SubscribeLocalHardwareInner function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSinkStubTest, SubscribeLocalHardwareInner_001, TestSize.Level1) +{ + MessageParcel data; + MessageParcel reply; + MessageOption option; + EXPECT_EQ(DH_SUCCESS, sinkStub_->SubscribeLocalHardwareInner(data, reply, option)); + EXPECT_EQ(DH_SUCCESS, sinkStub_->UnsubscribeLocalHardwareInner(data, reply, option)); + EXPECT_EQ(DH_SUCCESS, sinkStub_->DAudioNotifyInner(data, reply, option)); +} +} // DistributedHardware +} // OHOS diff --git a/services/audiomanager/test/unittest/servicesource/BUILD.gn b/services/audiomanager/test/unittest/servicesource/BUILD.gn index 60c32ed3..cfc41918 100644 --- a/services/audiomanager/test/unittest/servicesource/BUILD.gn +++ b/services/audiomanager/test/unittest/servicesource/BUILD.gn @@ -89,7 +89,51 @@ ohos_unittest("DaudioSourceServiceTest") { ] } +## UnitTest daudio_source_stub_test +ohos_unittest("DaudioSourceStubTest") { + module_out_path = module_out_path + + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + "-Dprivate=public", + "-Dprotected=public", + ] + + sources = [ "${services_path}/audiomanager/test/unittest/servicesource/src/daudio_source_stub_test.cpp" ] + + configs = [ ":module_private_config" ] + + deps = [ + "${services_path}/audiomanager/servicesource:distributed_audio_source", + "//third_party/googletest:gmock", + "//third_party/googletest:gtest_main", + ] + + external_deps = [ + "access_token:libaccesstoken_sdk", + "access_token:libtokenid_sdk", + "audio_framework:audio_capturer", + "audio_framework:audio_client", + "audio_framework:audio_renderer", + "cJSON:cjson", + "c_utils:utils", + "drivers_interface_distributed_audio:libdaudio_proxy_1.0", + "dsoftbus:softbus_client", + "hisysevent:libhisysevent", + "hitrace:hitrace_meter", + "ipc:ipc_core", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + ] +} + group("service_source_test") { testonly = true - deps = [ ":DaudioSourceServiceTest" ] + deps = [ + ":DaudioSourceServiceTest", + ":DaudioSourceStubTest", + ] } diff --git a/services/audiomanager/test/unittest/servicesource/include/daudio_source_stub_test.h b/services/audiomanager/test/unittest/servicesource/include/daudio_source_stub_test.h new file mode 100644 index 00000000..0905e103 --- /dev/null +++ b/services/audiomanager/test/unittest/servicesource/include/daudio_source_stub_test.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef DAUDIO_SOURCE_STUB_TEST_H +#define DAUDIO_SOURCE_STUB_TEST_H + +#include + +#include "daudio_source_stub.h" +#include "daudio_source_service.h" + +namespace OHOS { +namespace DistributedHardware { +class DAudioSourceStubTest : public testing::Test { +public: + static void SetUpTestCase(void); + static void TearDownTestCase(void); + void SetUp(); + void TearDown(); + std::shared_ptr sourceStub_ = nullptr; +}; +} // namespace DistributedHardware +} // namespace OHOS +#endif // OHOS_DAUDIO_SOURCE_DEV_TEST_H \ No newline at end of file diff --git a/services/audiomanager/test/unittest/servicesource/src/daudio_source_stub_test.cpp b/services/audiomanager/test/unittest/servicesource/src/daudio_source_stub_test.cpp new file mode 100644 index 00000000..31ae3a6a --- /dev/null +++ b/services/audiomanager/test/unittest/servicesource/src/daudio_source_stub_test.cpp @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use sinkDev_ file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "daudio_source_stub_test.h" + +#include "accesstoken_kit.h" +#include "ipc_skeleton.h" +#include "tokenid_kit.h" + +#include "daudio_constants.h" +#include "daudio_errorcode.h" +#include "daudio_ipc_callback_proxy.h" +#include "daudio_ipc_interface_code.h" +#include "daudio_log.h" + +using namespace testing::ext; + +namespace OHOS { +namespace DistributedHardware { +void DAudioSourceStubTest::SetUpTestCase(void) {} + +void DAudioSourceStubTest::TearDownTestCase(void) {} + +void DAudioSourceStubTest::SetUp() +{ + uint32_t saId = 6666; + bool runOnCreate = true; + sourceStub_ = std::make_shared(saId, runOnCreate); +} + +void DAudioSourceStubTest::TearDown() +{ + sourceStub_ = nullptr; +} + +/** + * @tc.name: OnRemoteRequest_001 + * @tc.desc: Verify the OnRemoteRequest function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSourceStubTest, OnRemoteRequest_001, TestSize.Level1) +{ + int32_t code = 0; + MessageParcel data; + MessageParcel reply; + MessageOption option; + EXPECT_EQ(ERR_DH_AUDIO_SA_INVALID_INTERFACE_TOKEN, sourceStub_->OnRemoteRequest(code, data, reply, option)); +} + +/** + * @tc.name: VerifyPermission_001 + * @tc.desc: Verify the VerifyPermission function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSourceStubTest, VerifyPermission_001, TestSize.Level1) +{ + EXPECT_EQ(false, sourceStub_->VerifyPermission()); +} + +/** + * @tc.name: InitSourceInner_001 + * @tc.desc: Verify the InitSourceInner function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSourceStubTest, InitSourceInner_001, TestSize.Level1) +{ + MessageParcel data; + MessageParcel reply; + MessageOption option; + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sourceStub_->InitSourceInner(data, reply, option)); + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sourceStub_->ReleaseSourceInner(data, reply, option)); +} + +/** + * @tc.name: RegisterDistributedHardwareInner_001 + * @tc.desc: Verify the RegisterDistributedHardwareInner function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSourceStubTest, RegisterDistributedHardwareInner_001, TestSize.Level1) +{ + MessageParcel data; + MessageParcel reply; + MessageOption option; + sourceStub_->ConfigDistributedHardwareInner(data, reply, option); + sourceStub_->DAudioNotifyInner(data, reply, option); + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sourceStub_->RegisterDistributedHardwareInner(data, reply, option)); + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sourceStub_->UnregisterDistributedHardwareInner(data, reply, option)); +} + +/** + * @tc.name: ConfigDistributedHardwareInner_001 + * @tc.desc: Verify the ConfigDistributedHardwareInner function. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DAudioSourceStubTest, ConfigDistributedHardwareInner_001, TestSize.Level1) +{ + MessageParcel data; + MessageParcel reply; + MessageOption option; + EXPECT_EQ(DH_SUCCESS, sourceStub_->ConfigDistributedHardwareInner(data, reply, option)); + EXPECT_EQ(DH_SUCCESS, sourceStub_->DAudioNotifyInner(data, reply, option)); +} +} // DistributedHardware +} // OHOS diff --git a/services/audiotransport/test/unittest/receiverengine/src/av_receiver_engine_transport_test.cpp b/services/audiotransport/test/unittest/receiverengine/src/av_receiver_engine_transport_test.cpp index e6872444..d444ad83 100644 --- a/services/audiotransport/test/unittest/receiverengine/src/av_receiver_engine_transport_test.cpp +++ b/services/audiotransport/test/unittest/receiverengine/src/av_receiver_engine_transport_test.cpp @@ -66,6 +66,8 @@ HWTEST_F(AVReceiverEngineTransportTest, InitEngine_001, TestSize.Level1) { IAVEngineProvider *providerPtr = nullptr; EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, receiverTrans_->InitEngine(providerPtr)); + receiverTrans_->receiverAdapter_ = std::make_shared(); + EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, receiverTrans_->InitEngine(providerPtr)); EXPECT_EQ(DH_SUCCESS, receiverTrans_->Release()); } diff --git a/services/audiotransport/test/unittest/senderengine/src/av_sender_engine_transport_test.cpp b/services/audiotransport/test/unittest/senderengine/src/av_sender_engine_transport_test.cpp index 1dc8bb17..5c6b908e 100644 --- a/services/audiotransport/test/unittest/senderengine/src/av_sender_engine_transport_test.cpp +++ b/services/audiotransport/test/unittest/senderengine/src/av_sender_engine_transport_test.cpp @@ -66,6 +66,8 @@ HWTEST_F(AVSenderEngineTransportTest, InitEngine_001, TestSize.Level1) { IAVEngineProvider *providerPtr = nullptr; EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, senderTrans_->InitEngine(providerPtr)); + senderTrans_->senderAdapter_ = std::make_shared(); + EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, senderTrans_->InitEngine(providerPtr)); EXPECT_EQ(DH_SUCCESS, senderTrans_->Release()); } -- Gitee