summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Devin Moore <devinmoore@google.com> 2022-11-18 18:43:53 +0000
committer Devin Moore <devinmoore@google.com> 2022-11-18 19:36:14 +0000
commit8cc776ae71b14bc1b1f3ff26960233e34b389019 (patch)
tree90b6925c76b459326c4e386d09813394e2281292
parent5f6ded88250a6e1322a386b5a1153f87b775f210 (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.cpp4
-rw-r--r--libs/fakeservicemanager/include/fakeservicemanager/ServiceManager.h3
-rw-r--r--libs/fakeservicemanager/test_sm.cpp9
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();