From 23bb745443adc1070a7bde95f695a0a250892e2e Mon Sep 17 00:00:00 2001 From: Jvgang Date: Thu, 21 Aug 2025 19:52:52 +0000 Subject: [PATCH] bug fix and add UT Signed-off-by: Jvgang --- .../server/src/audio_service.cpp | 4 +- .../test/unittest/audio_service_unit_test.cpp | 125 ++++++++++++++++++ 2 files changed, 127 insertions(+), 2 deletions(-) diff --git a/services/audio_service/server/src/audio_service.cpp b/services/audio_service/server/src/audio_service.cpp index a349968867..619132a17e 100644 --- a/services/audio_service/server/src/audio_service.cpp +++ b/services/audio_service/server/src/audio_service.cpp @@ -420,7 +420,7 @@ bool AudioService::RemovePauseInterruptEventMap(const uint32_t sessionId) if (iter == pauseInterruptEventMap_.end()) { return false; } - resumeInterruptEventMap_.erase(sessionId); + pauseInterruptEventMap_.erase(sessionId); return true; } @@ -504,7 +504,7 @@ void AudioService::RemoveBackgroundCaptureMap(uint32_t sessionId) std::lock_guard lock(backgroundCaptureMutex_); auto iter = backgroundCaptureMap_.find(sessionId); if (iter != backgroundCaptureMap_.end()) { - audioSwitchStreamMap_.erase(sessionId); + backgroundCaptureMap_.erase(sessionId); } } diff --git a/services/audio_service/test/unittest/audio_service_unit_test.cpp b/services/audio_service/test/unittest/audio_service_unit_test.cpp index e94e8dd5fe..11a05a99a6 100644 --- a/services/audio_service/test/unittest/audio_service_unit_test.cpp +++ b/services/audio_service/test/unittest/audio_service_unit_test.cpp @@ -3204,5 +3204,130 @@ HWTEST(AudioServiceUnitTest, ConfigCoreServiceProvider_003, TestSize.Level1) EXPECT_EQ(ret, ERR_INVALID_OPERATION); } +/** + * @tc.name : Test SendInterruptEventToAudioService API + * @tc.type : FUNC + * @tc.number: SendInterruptEventToAudioService_001, + * @tc.desc : Test SendInterruptEventToAudioService interface. + */ +HWTEST(AudioServiceCommonUnitTest, SendInterruptEventToAudioService_001, TestSize.Level1) +{ + AudioService *audioService = AudioService::GetInstance(); + EXPECT_NE(audioService, nullptr); + + InterruptEventInternal interruptEvent = { }; + interruptEvent.hintType = INTERRUPT_HINT_RESUME; + int32_t sessionId = 13579; + audioService->SendInterruptEventToAudioService(sessionId, interruptEvent); + std::lock_guard lock(audioService->resumeInterruptEventMutex_); + auto iter = audioService->resumeInterruptEventMap_.find(sessionId); + EXPECT_EQ(iter != audioService->resumeInterruptEventMap_.end(), true); + audioService->resumeInterruptEventMap_.erase[sessionId]; +} +/** + * @tc.name : Test SendInterruptEventToAudioService API + * @tc.type : FUNC + * @tc.number: SendInterruptEventToAudioService_002, + * @tc.desc : Test SendInterruptEventToAudioService interface. + */ +HWTEST(AudioServiceCommonUnitTest, SendInterruptEventToAudioService_002, TestSize.Level1) +{ + AudioService *audioService = AudioService::GetInstance(); + EXPECT_NE(audioService, nullptr); + + InterruptEventInternal interruptEvent = { }; + interruptEvent.hintType = INTERRUPT_HINT_PAUSE; + int32_t sessionId = 24678; + audioService->SendInterruptEventToAudioService(sessionId, interruptEvent); + std::lock_guard lock(audioService->pasueInterruptEventMutex_); + auto iter = audioService->pauseInterruptEventMap_.find(sessionId); + EXPECT_EQ(iter != audioService->pauseInterruptEventMap_.end(), true); + audioService->resumeInterruptEventMap_.erase[sessionId]; +} + +/** + * @tc.name : Test resumeInterruptEventMap_ API + * @tc.type : FUNC + * @tc.number: resumeInterruptEventMap_001, + * @tc.desc : Test resumeInterruptEventMap_001 interface. + */ +HWTEST(AudioServiceCommonUnitTest, resumeInterruptEventMap_001, TestSize.Level1) +{ + AudioService *audioService = AudioService::GetInstance(); + EXPECT_NE(audioService, nullptr); + + InterruptEventInternal interruptEvent = { }; + interruptEvent.hintType = INTERRUPT_HINT_RESUME; + int32_t sessionId = 123456; + + std::lock_guard lock(audioService->resumeInterruptEventMutex_); + auto iter = audioService->resumeInterruptEventMap_.find(sessionId); + EXPECT_EQ(iter == audioService->resumeInterruptEventMap_.end(), true); + lock.unlock(); + // test Update when sessionId not in map + audioService->UpdateResumeInterruptEventMap(sessionId, interruptEvent); + std::lock_guard lock1(audioService->resumeInterruptEventMutex_); + auto iter = audioService->resumeInterruptEventMap_.find(sessionId); + EXPECT_EQ(iter != audioService->resumeInterruptEventMap_.end(), true); + lock1.unlock(); + // test Update when sessionId in map + interruptEvent.hintType = INTERRUPT_HINT_MUTE; + audioService->UpdateResumeInterruptEventMap(sessionId, interruptEvent); + std::lock_guard lock2(audioService->resumeInterruptEventMutex_); + auto iter = audioService->resumeInterruptEventMap_.find(sessionId); + EXPECT_EQ(iter != audioService->resumeInterruptEventMap_.end(), true); + EXPECT_EQ(iter->second.hintType, INTERRUPT_HINT_MUTE); + lock2.unlock(); + + // test Remove when sessionId in map + bool res = audioService->RemoveResumeInterruptEventMap(sessionId); + EXPECT_EQ(res, true); + // test Remove when sessionId not in map + res = audioService->RemoveResumeInterruptEventMap(sessionId); + EXPECT_EQ(res, false); +} + +/** + * @tc.name : Test pauseInterruptEventMap_ API + * @tc.type : FUNC + * @tc.number: pauseInterruptEventMap_001, + * @tc.desc : Test pauseInterruptEventMap_001 interface. + */ +HWTEST(AudioServiceCommonUnitTest, pauseInterruptEventMap_001, TestSize.Level1) +{ + AudioService *audioService = AudioService::GetInstance(); + EXPECT_NE(audioService, nullptr); + + InterruptEventInternal interruptEvent = { }; + interruptEvent.hintType = INTERRUPT_HINT_PAUSE; + int32_t sessionId = 246810; + + std::lock_guard lock(audioService->pauseInterruptEventMutex_); + auto iter = audioService->pauseInterruptEventMap_.find(sessionId); + EXPECT_EQ(iter == audioService->pauseInterruptEventMap_.end(), true); + lock.unlock(); + // test Update when sessionId not in map + audioService->UpdatePauseInterruptEventMap(sessionId, interruptEvent); + std::lock_guard lock1(audioService->pauseInterruptEventMutex_); + auto iter = audioService->pauseInterruptEventMap_.find(sessionId); + EXPECT_EQ(iter != audioService->pauseInterruptEventMap_.end(), true); + lock1.unlock(); + // test Update when sessionId in map + interruptEvent.hintType = INTERRUPT_HINT_MUTE; + audioService->UpdatePauseInterruptEventMap(sessionId, interruptEvent); + std::lock_guard lock2(audioService->pauseInterruptEventMutex_); + auto iter = audioService->pauseInterruptEventMap_.find(sessionId); + EXPECT_EQ(iter != audioService->pauseInterruptEventMap_.end(), true); + EXPECT_EQ(iter->second.hintType, INTERRUPT_HINT_MUTE); + lock2.unlock(); + + // test Remove when sessionId in map + bool res = audioService->RemovePauseInterruptEventMap(sessionId); + EXPECT_EQ(res, true); + // test Remove when sessionId not in map + res = audioService->RemovePauseInterruptEventMap(sessionId); + EXPECT_EQ(res, false); +} + } // namespace AudioStandard } // namespace OHOS \ No newline at end of file -- Gitee