From 088c66edf5ab7cb49c91bec30ac8d8a309a40f6f Mon Sep 17 00:00:00 2001 From: songqizhang Date: Thu, 4 Sep 2025 10:52:24 +0800 Subject: [PATCH 1/5] test Signed-off-by: songqizhang --- test.cpp | 1 + 1 file changed, 1 insertion(+) create mode 100644 test.cpp diff --git a/test.cpp b/test.cpp new file mode 100644 index 0000000000..d1d06ad36a --- /dev/null +++ b/test.cpp @@ -0,0 +1 @@ +1111 \ No newline at end of file -- Gitee From b0273f460581c867816ac6245d5a8579f727e983 Mon Sep 17 00:00:00 2001 From: weiyuantian Date: Thu, 4 Sep 2025 03:01:31 +0000 Subject: [PATCH 2/5] update test.cpp. Signed-off-by: weiyuantian --- test.cpp | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 175 insertions(+), 1 deletion(-) diff --git a/test.cpp b/test.cpp index d1d06ad36a..6fbc40cb08 100644 --- a/test.cpp +++ b/test.cpp @@ -1 +1,175 @@ -1111 \ No newline at end of file +#include +#include "parameters.h" + +constexpr const char* RECLAIM_MEMORY = "AudioReclaimMemory"; +constexpr uint32_t TIME_OF_RECLAIM_MEMORY = 240000; //4min +constexpr const char* RECLAIM_FILE_STRING = "1"; + + PostReclaimMemoryTask(); + +void AudioStreamCollector::PostReclaimMemoryTask() +{ + if (system::GetParameter("persist.ace.testmode.enabled", "0") != "1" || + audioPolicyServerHandler_ == nullptr) { + AUDIO_INFO_LOG("wyt11--------------------------non test scenario-------------------------"); + return; + } + if (!taskNotStarted_.load() && !CheckAudioStateIdle()) { + AUDIO_INFO_LOG("wyt11--------------------------clear timer-------------------------"); + audioPolicyServerHandler_->RemoveTask(RECLAIM_MEMORY); + taskNotStarted_.store(true); + return; + } + if (taskNotStarted_.load() && CheckAudioStateIdle()) { + AUDIO_INFO_LOG("wyt11--------------------------start timer-------------------------"); + auto task = [this]() { + ReclaimMem(); + taskNotStarted_.store(true); + }; + audioPolicyServerHandler_->PostTask(task, RECLAIM_MEMORY, TIME_OF_RECLAIM_MEMORY); + taskNotStarted_.store(false); + } +} + +void AudioStreamCollector::ReclaimMem() +{ + std::lock_guard lock(clearMemoryMutex_); + std::string reclaimPath = "/proc/" + std::to_string(getpid()) + "/reclaim"; + std::string reclaimContent = RECLAIM_FILE_STRING; + AUDIO_INFO_LOG("wyt11-----------------Start Reclaim File = %{public}s", reclaimPath.c_str()); + std::ofstream outfile(reclaimPath); + if (outfile.is_open()) { + outfile << reclaimContent; + outfile.close(); + } else { + AUDIO_ERR_LOG("reclaim cannot open file"); + } +} + +bool AudioStreamCollector::CheckAudioStateIdle() +{ + if (audioRendererChangeInfos_.empty() && audioCapturerChangeInfos_.empty()) { + AUDIO_INFO_LOG("wyt11--------------------------ALL is null-------------------------"); + return true; + } + if (!audioRendererChangeInfos_.empty()) { + for (auto rendererInfo : audioRendererChangeInfos_) { + if (rendererInfo->rendererState == RENDERER_RUNNING) { + AUDIO_INFO_LOG("wyt11--------------------------rendererInfo is RUNNING-------------------------"); + return false; + } + } + } + if (!audioCapturerChangeInfos_.empty()) { + for (auto capturerInfo : audioCapturerChangeInfos_) { + if (capturerInfo->capturerState == CAPTURER_RUNNING) { + AUDIO_INFO_LOG("wyt11--------------------------capturerInfo is RUNNING-------------------------"); + return false; + } + } + } + AUDIO_INFO_LOG("wyt11--------------------------ALL is idle-------------------------"); + return true; +} + + + void PostReclaimMemoryTask(); + void ReclaimMem(); + bool CheckAudioStateIdle(); + std::atomic_bool taskNotStarted_ = true; + std::mutex clearMemoryMutex_; + +#include "parameters.h" + + +/** +* @tc.name : Test PostReclaimMemoryTask. +* @tc.number: PostReclaimMemoryTask_001 +* @tc.desc : Test PostReclaimMemoryTask. +*/ +HWTEST_F(AudioStreamCollectorUnitTest, PostReclaimMemoryTask_001, TestSize.Level1) +{ + AudioStreamCollector collector; + collector.audioRendererChangeInfos_.clear(); + collector.audioCapturerChangeInfos_.clear(); + collector.audioPolicyServerHandler_ = DelayedSingleton::GetInstance(); + collector.PostReclaimMemoryTask(); + std::string retString = system::GetParameter("persist.ace.testmode.enabled", "0"); + system::SetParameter("persist.ace.testmode.enabled", "1"); + collector.PostReclaimMemoryTask(); + collector.ReclaimMem(); + collector.taskNotStarted_ = false; + shared_ptr rendererChangeInfo = make_shared(); + EXPECT_NE(rendererChangeInfo, nullptr); + rendererChangeInfo->rendererState = RENDERER_RUNNING; + collector.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); + collector.PostReclaimMemoryTask(); + system::SetParameter("persist.ace.testmode.enabled", retString); + EXPECT_NE("1", system::GetParameter("persist.ace.testmode.enabled", "0")); +} + +/** +* @tc.name : Test CheckAudioStateIdle. +* @tc.number: CheckAudioStateIdle_001 +* @tc.desc : Test CheckAudioStateIdle. +*/ +HWTEST_F(AudioStreamCollectorUnitTest, CheckAudioStateIdle_001, TestSize.Level1) +{ + AudioStreamCollector collector; + shared_ptr rendererChangeInfo = make_shared(); + EXPECT_NE(rendererChangeInfo, nullptr); + rendererChangeInfo->rendererState = RENDERER_RUNNING; + collector.audioRendererChangeInfos_.push_back(rendererChangeInfo); + EXPECT_EQ(false, collector.CheckAudioStateIdle()); + + collector.audioRendererChangeInfos_.clear(); + shared_ptr capturerChangeInfo = make_shared(); + EXPECT_NE(capturerChangeInfo, nullptr); + capturerChangeInfo->capturerState = CAPTURER_RUNNING; + collector.audioCapturerChangeInfos_.push_back(capturerChangeInfo); + EXPECT_EQ(false, collector.CheckAudioStateIdle()); + + collector.audioCapturerChangeInfos_.clear(); + rendererChangeInfo->rendererState = RENDERER_STOPPED; + capturerChangeInfo->capturerState = CAPTURER_STOPPED; + collector.audioRendererChangeInfos_.push_back(rendererChangeInfo); + collector.audioCapturerChangeInfos_.push_back(capturerChangeInfo); + EXPECT_EQ(true, collector.CheckAudioStateIdle()); +} + + +void AudioStreamCollectorPostReclaimMemoryTaskFuzzTest(const uint8_t *rawData, size_t size) +{ + uint32_t index = static_cast(size); + AudioStreamType volumeType = g_testAudioStreamTypes[index % g_testAudioStreamTypes.size()]; + shared_ptr rendererChangeInfo = make_shared(); + int32_t randIntValue = static_cast(size); + rendererChangeInfo->createrUID = randIntValue / NUM_2; + rendererChangeInfo->clientUID = randIntValue / NUM_2; + rendererChangeInfo->sessionId = randIntValue; + rendererChangeInfo->rendererState = g_testRendererState[index % g_testRendererState.size()]; + audioStreamCollector_.audioRendererChangeInfos_.clear(); + audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); + audioStreamCollector_.PostReclaimMemoryTask(); + audioStreamCollector_.ReclaimMem(); +} + +void AudioStreamCollectorCheckAudioStateIdleFuzzTest(const uint8_t *rawData, size_t size) +{ + uint32_t index = static_cast(size); + AudioStreamType volumeType = g_testAudioStreamTypes[index % g_testAudioStreamTypes.size()]; + shared_ptr rendererChangeInfo = make_shared(); + int32_t randIntValue = static_cast(size); + rendererChangeInfo->createrUID = randIntValue / NUM_2; + rendererChangeInfo->clientUID = randIntValue / NUM_2; + rendererChangeInfo->sessionId = randIntValue; + rendererChangeInfo->rendererState = g_testRendererState[index % g_testRendererState.size()]; + audioStreamCollector_.audioRendererChangeInfos_.clear(); + audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); + audioStreamCollector_.CheckAudioStateIdle(); +} + + + OHOS::AudioStandard::AudioStreamCollectorPostReclaimMemoryTaskFuzzTest, + OHOS::AudioStandard::AudioStreamCollectorCheckAudioStateIdleFuzzTest, + -- Gitee From 122fff22bb9acf007d45f86474d35c8958ad9675 Mon Sep 17 00:00:00 2001 From: weiyuantian Date: Thu, 4 Sep 2025 03:08:43 +0000 Subject: [PATCH 3/5] update test.cpp. Signed-off-by: weiyuantian --- test.cpp | 176 +------------------------------------------------------ 1 file changed, 1 insertion(+), 175 deletions(-) diff --git a/test.cpp b/test.cpp index 6fbc40cb08..9d07aa0df5 100644 --- a/test.cpp +++ b/test.cpp @@ -1,175 +1 @@ -#include -#include "parameters.h" - -constexpr const char* RECLAIM_MEMORY = "AudioReclaimMemory"; -constexpr uint32_t TIME_OF_RECLAIM_MEMORY = 240000; //4min -constexpr const char* RECLAIM_FILE_STRING = "1"; - - PostReclaimMemoryTask(); - -void AudioStreamCollector::PostReclaimMemoryTask() -{ - if (system::GetParameter("persist.ace.testmode.enabled", "0") != "1" || - audioPolicyServerHandler_ == nullptr) { - AUDIO_INFO_LOG("wyt11--------------------------non test scenario-------------------------"); - return; - } - if (!taskNotStarted_.load() && !CheckAudioStateIdle()) { - AUDIO_INFO_LOG("wyt11--------------------------clear timer-------------------------"); - audioPolicyServerHandler_->RemoveTask(RECLAIM_MEMORY); - taskNotStarted_.store(true); - return; - } - if (taskNotStarted_.load() && CheckAudioStateIdle()) { - AUDIO_INFO_LOG("wyt11--------------------------start timer-------------------------"); - auto task = [this]() { - ReclaimMem(); - taskNotStarted_.store(true); - }; - audioPolicyServerHandler_->PostTask(task, RECLAIM_MEMORY, TIME_OF_RECLAIM_MEMORY); - taskNotStarted_.store(false); - } -} - -void AudioStreamCollector::ReclaimMem() -{ - std::lock_guard lock(clearMemoryMutex_); - std::string reclaimPath = "/proc/" + std::to_string(getpid()) + "/reclaim"; - std::string reclaimContent = RECLAIM_FILE_STRING; - AUDIO_INFO_LOG("wyt11-----------------Start Reclaim File = %{public}s", reclaimPath.c_str()); - std::ofstream outfile(reclaimPath); - if (outfile.is_open()) { - outfile << reclaimContent; - outfile.close(); - } else { - AUDIO_ERR_LOG("reclaim cannot open file"); - } -} - -bool AudioStreamCollector::CheckAudioStateIdle() -{ - if (audioRendererChangeInfos_.empty() && audioCapturerChangeInfos_.empty()) { - AUDIO_INFO_LOG("wyt11--------------------------ALL is null-------------------------"); - return true; - } - if (!audioRendererChangeInfos_.empty()) { - for (auto rendererInfo : audioRendererChangeInfos_) { - if (rendererInfo->rendererState == RENDERER_RUNNING) { - AUDIO_INFO_LOG("wyt11--------------------------rendererInfo is RUNNING-------------------------"); - return false; - } - } - } - if (!audioCapturerChangeInfos_.empty()) { - for (auto capturerInfo : audioCapturerChangeInfos_) { - if (capturerInfo->capturerState == CAPTURER_RUNNING) { - AUDIO_INFO_LOG("wyt11--------------------------capturerInfo is RUNNING-------------------------"); - return false; - } - } - } - AUDIO_INFO_LOG("wyt11--------------------------ALL is idle-------------------------"); - return true; -} - - - void PostReclaimMemoryTask(); - void ReclaimMem(); - bool CheckAudioStateIdle(); - std::atomic_bool taskNotStarted_ = true; - std::mutex clearMemoryMutex_; - -#include "parameters.h" - - -/** -* @tc.name : Test PostReclaimMemoryTask. -* @tc.number: PostReclaimMemoryTask_001 -* @tc.desc : Test PostReclaimMemoryTask. -*/ -HWTEST_F(AudioStreamCollectorUnitTest, PostReclaimMemoryTask_001, TestSize.Level1) -{ - AudioStreamCollector collector; - collector.audioRendererChangeInfos_.clear(); - collector.audioCapturerChangeInfos_.clear(); - collector.audioPolicyServerHandler_ = DelayedSingleton::GetInstance(); - collector.PostReclaimMemoryTask(); - std::string retString = system::GetParameter("persist.ace.testmode.enabled", "0"); - system::SetParameter("persist.ace.testmode.enabled", "1"); - collector.PostReclaimMemoryTask(); - collector.ReclaimMem(); - collector.taskNotStarted_ = false; - shared_ptr rendererChangeInfo = make_shared(); - EXPECT_NE(rendererChangeInfo, nullptr); - rendererChangeInfo->rendererState = RENDERER_RUNNING; - collector.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); - collector.PostReclaimMemoryTask(); - system::SetParameter("persist.ace.testmode.enabled", retString); - EXPECT_NE("1", system::GetParameter("persist.ace.testmode.enabled", "0")); -} - -/** -* @tc.name : Test CheckAudioStateIdle. -* @tc.number: CheckAudioStateIdle_001 -* @tc.desc : Test CheckAudioStateIdle. -*/ -HWTEST_F(AudioStreamCollectorUnitTest, CheckAudioStateIdle_001, TestSize.Level1) -{ - AudioStreamCollector collector; - shared_ptr rendererChangeInfo = make_shared(); - EXPECT_NE(rendererChangeInfo, nullptr); - rendererChangeInfo->rendererState = RENDERER_RUNNING; - collector.audioRendererChangeInfos_.push_back(rendererChangeInfo); - EXPECT_EQ(false, collector.CheckAudioStateIdle()); - - collector.audioRendererChangeInfos_.clear(); - shared_ptr capturerChangeInfo = make_shared(); - EXPECT_NE(capturerChangeInfo, nullptr); - capturerChangeInfo->capturerState = CAPTURER_RUNNING; - collector.audioCapturerChangeInfos_.push_back(capturerChangeInfo); - EXPECT_EQ(false, collector.CheckAudioStateIdle()); - - collector.audioCapturerChangeInfos_.clear(); - rendererChangeInfo->rendererState = RENDERER_STOPPED; - capturerChangeInfo->capturerState = CAPTURER_STOPPED; - collector.audioRendererChangeInfos_.push_back(rendererChangeInfo); - collector.audioCapturerChangeInfos_.push_back(capturerChangeInfo); - EXPECT_EQ(true, collector.CheckAudioStateIdle()); -} - - -void AudioStreamCollectorPostReclaimMemoryTaskFuzzTest(const uint8_t *rawData, size_t size) -{ - uint32_t index = static_cast(size); - AudioStreamType volumeType = g_testAudioStreamTypes[index % g_testAudioStreamTypes.size()]; - shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); - rendererChangeInfo->createrUID = randIntValue / NUM_2; - rendererChangeInfo->clientUID = randIntValue / NUM_2; - rendererChangeInfo->sessionId = randIntValue; - rendererChangeInfo->rendererState = g_testRendererState[index % g_testRendererState.size()]; - audioStreamCollector_.audioRendererChangeInfos_.clear(); - audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); - audioStreamCollector_.PostReclaimMemoryTask(); - audioStreamCollector_.ReclaimMem(); -} - -void AudioStreamCollectorCheckAudioStateIdleFuzzTest(const uint8_t *rawData, size_t size) -{ - uint32_t index = static_cast(size); - AudioStreamType volumeType = g_testAudioStreamTypes[index % g_testAudioStreamTypes.size()]; - shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); - rendererChangeInfo->createrUID = randIntValue / NUM_2; - rendererChangeInfo->clientUID = randIntValue / NUM_2; - rendererChangeInfo->sessionId = randIntValue; - rendererChangeInfo->rendererState = g_testRendererState[index % g_testRendererState.size()]; - audioStreamCollector_.audioRendererChangeInfos_.clear(); - audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); - audioStreamCollector_.CheckAudioStateIdle(); -} - - - OHOS::AudioStandard::AudioStreamCollectorPostReclaimMemoryTaskFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorCheckAudioStateIdleFuzzTest, - +111 \ No newline at end of file -- Gitee From a65c784e099086b89d5040f211c25b9655073cea Mon Sep 17 00:00:00 2001 From: weiyuantian Date: Sat, 13 Sep 2025 02:02:19 +0000 Subject: [PATCH 4/5] update test.cpp. Signed-off-by: weiyuantian --- test.cpp | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/test.cpp b/test.cpp index 9d07aa0df5..fd5d9dae1d 100644 --- a/test.cpp +++ b/test.cpp @@ -1 +1,43 @@ -111 \ No newline at end of file +111 +/** + * @tc.name : Test AudioInterruptService + * @tc.number: AudioInterruptService_071 + * @tc.desc : Test ShouldCallbackToClient +*/ +HWTEST(AudioInterruptServiceSecondUnitTest, AudioInterruptService_071, TestSize.Level1) +{ + auto audioInterruptService = std::make_shared(); + ASSERT_NE(audioInterruptService, nullptr); + + uint32_t uid = 0; + int32_t streamId = 0; + InterruptEventInternal interruptEvent; + interruptEvent.hintType = INTERRUPT_HINT_RESUME; + + uint32_t uid2 = 0; + ClientType clientType = CLIENT_TYPE_GAME; + ClientTypeManager::GetInstance()->OnClientTypeQueryCompleted(uid2, clientType); + audioInterruptService->policyServer_ = new AudioPolicyServer(0); + ASSERT_NE(audioInterruptService->policyServer_, nullptr); + auto ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); + EXPECT_EQ(ret, false); + interruptEvent.hintType = INTERRUPT_HINT_PAUSE; + ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); + EXPECT_EQ(ret, false); +} +/** + * @tc.name : Test AudioInterruptService + * @tc.number: AudioInterruptService_072 + * @tc.desc : Test AudioInterruptIsActiveInFocusList +*/ +HWTEST(AudioInterruptServiceSecondUnitTest, AudioInterruptService_072, TestSize.Level1) +{ + auto audioInterruptService = std::make_shared(); + ASSERT_NE(audioInterruptService, nullptr); + + uint32_t streamId = 1; + int32_t zoneId = 0; + audioInterruptService->mutedGameSessionId_.insert(streamId); + auto ret = audioInterruptService->AudioInterruptIsActiveInFocusList(zoneId, streamId); + EXPECT_EQ(ret, true); +} \ No newline at end of file -- Gitee From 80910154f4a33afbf2e6fc02a34d07eabf2d65b8 Mon Sep 17 00:00:00 2001 From: weiyuantian Date: Sat, 13 Sep 2025 02:09:03 +0000 Subject: [PATCH 5/5] update test.cpp. Signed-off-by: weiyuantian --- test.cpp | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/test.cpp b/test.cpp index fd5d9dae1d..58c9bdf9d0 100644 --- a/test.cpp +++ b/test.cpp @@ -1,43 +1 @@ 111 -/** - * @tc.name : Test AudioInterruptService - * @tc.number: AudioInterruptService_071 - * @tc.desc : Test ShouldCallbackToClient -*/ -HWTEST(AudioInterruptServiceSecondUnitTest, AudioInterruptService_071, TestSize.Level1) -{ - auto audioInterruptService = std::make_shared(); - ASSERT_NE(audioInterruptService, nullptr); - - uint32_t uid = 0; - int32_t streamId = 0; - InterruptEventInternal interruptEvent; - interruptEvent.hintType = INTERRUPT_HINT_RESUME; - - uint32_t uid2 = 0; - ClientType clientType = CLIENT_TYPE_GAME; - ClientTypeManager::GetInstance()->OnClientTypeQueryCompleted(uid2, clientType); - audioInterruptService->policyServer_ = new AudioPolicyServer(0); - ASSERT_NE(audioInterruptService->policyServer_, nullptr); - auto ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); - EXPECT_EQ(ret, false); - interruptEvent.hintType = INTERRUPT_HINT_PAUSE; - ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); - EXPECT_EQ(ret, false); -} -/** - * @tc.name : Test AudioInterruptService - * @tc.number: AudioInterruptService_072 - * @tc.desc : Test AudioInterruptIsActiveInFocusList -*/ -HWTEST(AudioInterruptServiceSecondUnitTest, AudioInterruptService_072, TestSize.Level1) -{ - auto audioInterruptService = std::make_shared(); - ASSERT_NE(audioInterruptService, nullptr); - - uint32_t streamId = 1; - int32_t zoneId = 0; - audioInterruptService->mutedGameSessionId_.insert(streamId); - auto ret = audioInterruptService->AudioInterruptIsActiveInFocusList(zoneId, streamId); - EXPECT_EQ(ret, true); -} \ No newline at end of file -- Gitee