From 1e1b64767a2adb1b3526d29a6fc2348ad3cfcd2a Mon Sep 17 00:00:00 2001 From: bodamnam Date: Mon, 20 Mar 2023 14:04:49 +0000 Subject: Add UT for AudioManager Fix the crash during the AudioManager UT by the racing codition accessing the AudioManager instance between AudioManger destruction and processEvent in ImsMediaEventHandler. Bug: 272299058 Test: atest ImsMediaNativeTests, Verified the voice call in live network. Change-Id: I9bed59f9bfe2916ccdc2fae2c671c8811bcdcdca --- .../lib/libimsmedia/core/video/VideoManager.cpp | 27 +++++++++------------- 1 file changed, 11 insertions(+), 16 deletions(-) (limited to 'service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoManager.cpp') diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoManager.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoManager.cpp index 9d98be37..37007b21 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoManager.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoManager.cpp @@ -21,9 +21,18 @@ using namespace android; VideoManager* VideoManager::manager; -VideoManager::VideoManager() {} +VideoManager::VideoManager() +{ + mRequestHandler.Init("VIDEO_REQUEST_EVENT"); + mResponseHandler.Init("VIDEO_RESPONSE_EVENT"); +} -VideoManager::~VideoManager() {} +VideoManager::~VideoManager() +{ + mRequestHandler.Deinit(); + mResponseHandler.Deinit(); + manager = nullptr; +} VideoManager* VideoManager::getInstance() { @@ -245,13 +254,6 @@ void VideoManager::SendInternalEvent( } } -VideoManager::RequestHandler::RequestHandler() : - ImsMediaEventHandler("VIDEO_REQUEST_EVENT") -{ -} - -VideoManager::RequestHandler::~RequestHandler() {} - void VideoManager::RequestHandler::processEvent( uint32_t event, uint64_t sessionId, uint64_t paramA, uint64_t paramB) { @@ -351,13 +353,6 @@ void VideoManager::RequestHandler::processEvent( } } -VideoManager::ResponseHandler::ResponseHandler() : - ImsMediaEventHandler("VIDEO_RESPONSE_EVENT") -{ -} - -VideoManager::ResponseHandler::~ResponseHandler() {} - void VideoManager::ResponseHandler::processEvent( uint32_t event, uint64_t sessionId, uint64_t paramA, uint64_t paramB) { -- cgit v1.2.3