diff options
author | 2022-11-18 18:43:53 +0000 | |
---|---|---|
committer | 2022-11-18 19:36:14 +0000 | |
commit | 8cc776ae71b14bc1b1f3ff26960233e34b389019 (patch) | |
tree | 90b6925c76b459326c4e386d09813394e2281292 | |
parent | 5f6ded88250a6e1322a386b5a1153f87b775f210 (diff) |
fakeservicemanager: Add a clear() method
This clears all registered services.
Test: atest fakeservicemanager_test
Bug: 259549851
Change-Id: Ie563de3e5babc67b9cc02efa570bf669a92bf3e4
-rw-r--r-- | libs/fakeservicemanager/ServiceManager.cpp | 4 | ||||
-rw-r--r-- | libs/fakeservicemanager/include/fakeservicemanager/ServiceManager.h | 3 | ||||
-rw-r--r-- | libs/fakeservicemanager/test_sm.cpp | 9 |
3 files changed, 16 insertions, 0 deletions
diff --git a/libs/fakeservicemanager/ServiceManager.cpp b/libs/fakeservicemanager/ServiceManager.cpp index deba724c4f..1109ad8594 100644 --- a/libs/fakeservicemanager/ServiceManager.cpp +++ b/libs/fakeservicemanager/ServiceManager.cpp @@ -106,4 +106,8 @@ std::vector<IServiceManager::ServiceDebugInfo> ServiceManager::getServiceDebugIn std::vector<IServiceManager::ServiceDebugInfo> ret; return ret; } + +void ServiceManager::clear() { + mNameToService.clear(); +} } // namespace android diff --git a/libs/fakeservicemanager/include/fakeservicemanager/ServiceManager.h b/libs/fakeservicemanager/include/fakeservicemanager/ServiceManager.h index ee0637eb7e..ba6bb7d95b 100644 --- a/libs/fakeservicemanager/include/fakeservicemanager/ServiceManager.h +++ b/libs/fakeservicemanager/include/fakeservicemanager/ServiceManager.h @@ -64,6 +64,9 @@ public: std::vector<IServiceManager::ServiceDebugInfo> getServiceDebugInfo() override; + // Clear all of the registered services + void clear(); + private: std::map<String16, sp<IBinder>> mNameToService; }; diff --git a/libs/fakeservicemanager/test_sm.cpp b/libs/fakeservicemanager/test_sm.cpp index 4ddbe0cf81..8682c1c795 100644 --- a/libs/fakeservicemanager/test_sm.cpp +++ b/libs/fakeservicemanager/test_sm.cpp @@ -64,6 +64,15 @@ TEST(AddService, HappyOverExistingService) { IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT), OK); } +TEST(AddService, HappyClearAddedService) { + auto sm = new ServiceManager(); + EXPECT_EQ(sm->addService(String16("foo"), getBinder(), false /*allowIsolated*/, + IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT), OK); + EXPECT_NE(sm->getService(String16("foo")), nullptr); + sm->clear(); + EXPECT_EQ(sm->getService(String16("foo")), nullptr); +} + TEST(GetService, HappyHappy) { auto sm = new ServiceManager(); sp<IBinder> service = getBinder(); |