summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/binder/tests/binderLibTest.cpp90
1 files changed, 0 insertions, 90 deletions
diff --git a/libs/binder/tests/binderLibTest.cpp b/libs/binder/tests/binderLibTest.cpp
index b8db408245..91d09163ed 100644
--- a/libs/binder/tests/binderLibTest.cpp
+++ b/libs/binder/tests/binderLibTest.cpp
@@ -113,7 +113,6 @@ enum BinderLibTestTranscationCode {
BINDER_LIB_TEST_ECHO_VECTOR,
BINDER_LIB_TEST_REJECT_BUF,
BINDER_LIB_TEST_CAN_GET_SID,
- BINDER_LIB_TEST_CREATE_TEST_SERVICE,
};
pid_t start_server_process(int arg2, bool usePoll = false)
@@ -1240,89 +1239,6 @@ TEST_P(BinderLibRpcTest, SetRpcClientDebugTwice) {
INSTANTIATE_TEST_CASE_P(BinderLibTest, BinderLibRpcTest, testing::Bool(),
BinderLibRpcTest::ParamToString);
-class BinderLibTestService;
-class BinderLibRpcClientTest : public BinderLibRpcTestBase,
- public WithParamInterface<std::tuple<bool, uint32_t>> {
-public:
- static std::string ParamToString(const testing::TestParamInfo<ParamType> &info) {
- auto [isRemote, numThreads] = info.param;
- return (isRemote ? "remote" : "local") + "_server_with_"s + std::to_string(numThreads) +
- "_threads";
- }
- sp<IBinder> CreateRemoteService(int32_t id) {
- Parcel data, reply;
- status_t status = data.writeInt32(id);
- EXPECT_THAT(status, StatusEq(OK));
- if (status != OK) return nullptr;
- status = m_server->transact(BINDER_LIB_TEST_CREATE_TEST_SERVICE, data, &reply);
- EXPECT_THAT(status, StatusEq(OK));
- if (status != OK) return nullptr;
- sp<IBinder> ret;
- status = reply.readStrongBinder(&ret);
- EXPECT_THAT(status, StatusEq(OK));
- if (status != OK) return nullptr;
- return ret;
- }
-};
-
-TEST_P(BinderLibRpcClientTest, Test) {
- auto [isRemote, numThreadsParam] = GetParam();
- uint32_t numThreads = numThreadsParam; // ... to be captured in lambda
- int32_t id = 0xC0FFEE00 + numThreads;
- sp<IBinder> server = isRemote ? sp<IBinder>(CreateRemoteService(id))
- : sp<IBinder>(sp<BinderLibTestService>::make(id, false));
- ASSERT_EQ(isRemote, !!server->remoteBinder());
- ASSERT_THAT(GetId(server), HasValue(id));
-
- unsigned int port = 0;
- // Fake servicedispatcher.
- {
- auto [socket, socketPort] = CreateSocket();
- ASSERT_TRUE(socket.ok());
- port = socketPort;
- ASSERT_THAT(server->setRpcClientDebug(std::move(socket)), StatusEq(OK));
- }
-
- std::mutex mutex;
- std::condition_variable cv;
- bool start = false;
-
- auto threadFn = [&](size_t threadNum) {
- usleep(threadNum * 50 * 1000); // threadNum * 50ms. Need this to avoid SYN flooding.
- auto rpcSession = RpcSession::make();
- ASSERT_TRUE(rpcSession->setupInetClient("127.0.0.1", port));
- auto rpcServerBinder = rpcSession->getRootObject();
- ASSERT_NE(nullptr, rpcServerBinder);
- // Check that |rpcServerBinder| and |server| points to the same service.
- EXPECT_THAT(GetId(rpcServerBinder), HasValue(id)) << "For thread #" << threadNum;
-
- {
- std::unique_lock<std::mutex> lock(mutex);
- ASSERT_TRUE(cv.wait_for(lock, 1s, [&] { return start; }));
- }
- // Let all threads almost simultaneously ping the service.
- for (size_t i = 0; i < 100; ++i) {
- EXPECT_THAT(rpcServerBinder->pingBinder(), StatusEq(OK))
- << "For thread #" << threadNum << ", iteration " << i;
- }
- };
-
- std::vector<std::thread> threads;
- for (size_t i = 0; i < numThreads; ++i) threads.emplace_back(std::bind(threadFn, i));
-
- {
- std::lock_guard<std::mutex> lock(mutex);
- start = true;
- }
- cv.notify_all();
-
- for (auto &t : threads) t.join();
-}
-
-INSTANTIATE_TEST_CASE_P(BinderLibTest, BinderLibRpcClientTest,
- testing::Combine(testing::Bool(), testing::Values(1u, 10u)),
- BinderLibRpcClientTest::ParamToString);
-
class BinderLibTestService : public BBinder {
public:
explicit BinderLibTestService(int32_t id, bool exitOnDestroy = true)
@@ -1637,12 +1553,6 @@ public:
case BINDER_LIB_TEST_CAN_GET_SID: {
return IPCThreadState::self()->getCallingSid() == nullptr ? BAD_VALUE : NO_ERROR;
}
- case BINDER_LIB_TEST_CREATE_TEST_SERVICE: {
- int32_t id;
- if (status_t status = data.readInt32(&id); status != NO_ERROR) return status;
- reply->writeStrongBinder(sp<BinderLibTestService>::make(id, false));
- return NO_ERROR;
- }
default:
return UNKNOWN_TRANSACTION;
};