libbinder_ndk unit tests: hold onto linked binder
It's now required to hold onto a binder if you are linked to death to
it, so that there is no memory leak when someone forgets to unlink. This
is consistent with the libbinder_ndk documentation.
Bug: 145692765
Test: ./runtests.sh
Change-Id: Id7622301ed2691ae2e4bfa472a332e3823e70003
diff --git a/libs/binder/ndk/test/main_client.cpp b/libs/binder/ndk/test/main_client.cpp
index 8467734..5c88270 100644
--- a/libs/binder/ndk/test/main_client.cpp
+++ b/libs/binder/ndk/test/main_client.cpp
@@ -87,14 +87,14 @@
EXPECT_EQ(STATUS_DEAD_OBJECT, foo->die());
foo = nullptr;
- AIBinder_decStrong(binder);
- binder = nullptr;
std::unique_lock<std::mutex> lock(deathMutex);
EXPECT_TRUE(deathCv.wait_for(lock, 1s, [&] { return deathRecieved; }));
EXPECT_TRUE(deathRecieved);
AIBinder_DeathRecipient_delete(recipient);
+ AIBinder_decStrong(binder);
+ binder = nullptr;
}
TEST(NdkBinder, RetrieveNonNdkService) {