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

Commit 38f736ac authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "binderRpcTest: fix OnewayStressTest flake" am: beb91bd2

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1830385

Change-Id: Ie22fd6e0e1fe241dade2f610201bde8eb27425ee
parents 94543390 beb91bd2
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -1036,6 +1036,14 @@ TEST_P(BinderRpc, ThreadingStressTest) {
    for (auto& t : threads) t.join();
}

static void saturateThreadPool(size_t threadCount, const sp<IBinderRpcTest>& iface) {
    std::vector<std::thread> threads;
    for (size_t i = 0; i < threadCount; i++) {
        threads.push_back(std::thread([&] { EXPECT_OK(iface->sleepMs(500)); }));
    }
    for (auto& t : threads) t.join();
}

TEST_P(BinderRpc, OnewayStressTest) {
    constexpr size_t kNumClientThreads = 10;
    constexpr size_t kNumServerThreads = 10;
@@ -1049,13 +1057,12 @@ TEST_P(BinderRpc, OnewayStressTest) {
            for (size_t j = 0; j < kNumCalls; j++) {
                EXPECT_OK(proc.rootIface->sendString("a"));
            }

            // check threads are not stuck
            EXPECT_OK(proc.rootIface->sleepMs(250));
        }));
    }

    for (auto& t : threads) t.join();

    saturateThreadPool(kNumServerThreads, proc.rootIface);
}

TEST_P(BinderRpc, OnewayCallDoesNotWait) {
@@ -1098,13 +1105,7 @@ TEST_P(BinderRpc, OnewayCallQueueing) {

    EXPECT_GT(epochMsAfter, epochMsBefore + kSleepMs * kNumSleeps);

    // pending oneway transactions hold ref, make sure we read data on all
    // sockets
    std::vector<std::thread> threads;
    for (size_t i = 0; i < 1 + kNumExtraServerThreads; i++) {
        threads.push_back(std::thread([&] { EXPECT_OK(proc.rootIface->sleepMs(250)); }));
    }
    for (auto& t : threads) t.join();
    saturateThreadPool(1 + kNumExtraServerThreads, proc.rootIface);
}

TEST_P(BinderRpc, OnewayCallExhaustion) {