diff options
| author | 2023-10-09 21:44:43 +0000 | |
|---|---|---|
| committer | 2023-10-09 21:44:43 +0000 | |
| commit | 71a8b6849ad9b1ddc55b3304c14be612608adb0c (patch) | |
| tree | cc30f02cb0e03c3fc0601590a025225d6bafcbc4 | |
| parent | 069a3fddf4c28cfd79192d97f9c5f8fe41a84af6 (diff) | |
| parent | 8a686b077f387fe280bda077fc7f31050329422a (diff) | |
Merge changes from topic "298314844_move_binder_proxy_accounting" into main am: 8a686b077f
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2776824
Change-Id: Ia07518aece7b98f1570bc8e7de1e19464c5d41e6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | libs/binder/tests/binderLibTest.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/libs/binder/tests/binderLibTest.cpp b/libs/binder/tests/binderLibTest.cpp index e021af0264..0396869167 100644 --- a/libs/binder/tests/binderLibTest.cpp +++ b/libs/binder/tests/binderLibTest.cpp @@ -1441,6 +1441,36 @@ TEST_F(BinderLibTest, HangingServices) { EXPECT_GE(epochMsAfter, epochMsBefore + delay); } +TEST_F(BinderLibTest, BinderProxyCount) { + Parcel data, reply; + sp<IBinder> server = addServer(); + ASSERT_NE(server, nullptr); + + uint32_t initialCount = BpBinder::getBinderProxyCount(); + size_t iterations = 100; + { + uint32_t count = initialCount; + std::vector<sp<IBinder> > proxies; + sp<IBinder> proxy; + // Create binder proxies and verify the count. + for (size_t i = 0; i < iterations; i++) { + ASSERT_THAT(server->transact(BINDER_LIB_TEST_CREATE_BINDER_TRANSACTION, data, &reply), + StatusEq(NO_ERROR)); + proxies.push_back(reply.readStrongBinder()); + EXPECT_EQ(BpBinder::getBinderProxyCount(), ++count); + } + // Remove every other one and verify the count. + auto it = proxies.begin(); + for (size_t i = 0; it != proxies.end(); i++) { + if (i % 2 == 0) { + it = proxies.erase(it); + EXPECT_EQ(BpBinder::getBinderProxyCount(), --count); + } + } + } + EXPECT_EQ(BpBinder::getBinderProxyCount(), initialCount); +} + class BinderLibRpcTestBase : public BinderLibTest { public: void SetUp() override { |