diff options
| author | 2023-07-29 05:07:56 +0000 | |
|---|---|---|
| committer | 2023-07-29 05:07:56 +0000 | |
| commit | 1bab4283dd3d11d25515dd587416c9715ba39c88 (patch) | |
| tree | ebbce68a321584dca53130d64991409a3b715401 | |
| parent | 985ccbe42723c8125a0b0bcf3f16f4e0feb6274e (diff) | |
| parent | f96741d28e612043e2d9f2026f61b63b559125a4 (diff) | |
Merge "libbinder_ndk_unit_test: avoid race" into main am: bb9be55f02 am: 27c18c5c59 am: 8e3d63b3d5 am: f96741d28e
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2681477
Change-Id: I8430014f30edbeb8c2773aba850355ff70607c0b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp b/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp index 27ce615565..089e55ffb1 100644 --- a/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp +++ b/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp @@ -377,18 +377,24 @@ TEST(NdkBinder, CantHaveTwoLocalBinderClassesWithSameDescriptor) { } TEST(NdkBinder, GetTestServiceStressTest) { - // libbinder has some complicated logic to make sure only one instance of - // ABpBinder is associated with each binder. - constexpr size_t kNumThreads = 10; constexpr size_t kNumCalls = 1000; std::vector<std::thread> threads; + // this is not a lazy service, but we must make sure that it's started before calling + // checkService on it, since the other process serving it might not be started yet. + { + // getService, not waitForService, to take advantage of timeout + auto binder = ndk::SpAIBinder(AServiceManager_getService(IFoo::kSomeInstanceName)); + ASSERT_NE(nullptr, binder.get()); + } + for (size_t i = 0; i < kNumThreads; i++) { threads.push_back(std::thread([&]() { for (size_t j = 0; j < kNumCalls; j++) { auto binder = ndk::SpAIBinder(AServiceManager_checkService(IFoo::kSomeInstanceName)); + ASSERT_NE(nullptr, binder.get()); EXPECT_EQ(STATUS_OK, AIBinder_ping(binder.get())); } })); |