From e724969364a0ecb08faa36e1d0fe88291b91f817 Mon Sep 17 00:00:00 2001 From: wangzhen Date: Sat, 13 Sep 2025 09:49:31 +0800 Subject: [PATCH] Verify first Signed-off-by: wangzhen --- services/abilitymgr/src/ability_manager_service.cpp | 8 ++++---- .../ability_manager_service_third_test.cpp | 9 ++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 079930e1139..cad6069eeaf 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -11616,16 +11616,16 @@ bool AbilityManagerService::GetStartUpNewRuleFlag() const void AbilityManagerService::CallRequestDone(const sptr &token, const sptr &callStub) { - { - std::lock_guard autoLock(abilityTokenLock_); - callStubTokenMap_[callStub] = token; - } auto abilityRecord = Token::GetAbilityRecordByToken(token); CHECK_POINTER(abilityRecord); if (!JudgeSelfCalled(abilityRecord)) { return; } + { + std::lock_guard autoLock(abilityTokenLock_); + callStubTokenMap_[callStub] = token; + } if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { auto uiAbilityManager = GetCurrentUIAbilityManager(); CHECK_POINTER(uiAbilityManager); diff --git a/test/unittest/ability_manager_service_third_test/ability_manager_service_third_test.cpp b/test/unittest/ability_manager_service_third_test/ability_manager_service_third_test.cpp index 83ea004b24c..0838837ceeb 100644 --- a/test/unittest/ability_manager_service_third_test/ability_manager_service_third_test.cpp +++ b/test/unittest/ability_manager_service_third_test/ability_manager_service_third_test.cpp @@ -625,10 +625,17 @@ HWTEST_F(AbilityManagerServiceThirdTest, CallRequestDone_001, TestSize.Level1) auto abilityMs_ = std::make_shared(); abilityMs_->subManagersHelper_ = std::make_shared(nullptr, nullptr); abilityMs_->subManagersHelper_->currentUIAbilityManager_ = std::make_shared(); + abilityMs_->callStubTokenMap_.clear(); sptr token = nullptr; sptr callStub = nullptr; - ASSERT_NE(abilityMs_, nullptr); abilityMs_->CallRequestDone(token, callStub); + EXPECT_TRUE(abilityMs_->callStubTokenMap_.empty()); + + auto abilityRecord = MockAbilityRecord(AbilityType::SERVICE); + token = abilityRecord->GetToken(); + abilityMs_->CallRequestDone(token, callStub); + EXPECT_NE(abilityMs_->callStubTokenMap_[callStub], nullptr); + EXPECT_EQ(abilityMs_->callStubTokenMap_[callStub], token); TAG_LOGI(AAFwkTag::TEST, "AbilityManagerServiceThirdTest CallRequestDone_001 end"); } -- Gitee