Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8cc776ae authored by Devin Moore's avatar Devin Moore
Browse files

fakeservicemanager: Add a clear() method

This clears all registered services.

Test: atest fakeservicemanager_test
Bug: 259549851
Change-Id: Ie563de3e5babc67b9cc02efa570bf669a92bf3e4
parent 5f6ded88
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -106,4 +106,8 @@ std::vector<IServiceManager::ServiceDebugInfo> ServiceManager::getServiceDebugIn
    std::vector<IServiceManager::ServiceDebugInfo> ret;
    return ret;
}

void ServiceManager::clear() {
    mNameToService.clear();
}
}  // namespace android
+3 −0
Original line number Diff line number Diff line
@@ -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;
};
+9 −0
Original line number Diff line number Diff line
@@ -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();