diff options
Diffstat (limited to 'libs')
| -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(); |