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

Commit c32c1724 authored by Fan Xu's avatar Fan Xu
Browse files

Rewrite BufferHubBuffer_test to avoid test crash

We noticed that ASSERT_XX is not going to terminate the tests if called
inside a hidl callback. Therefore, this CL is moving the checks outside
of the callback.

Test: BufferHubBuffer_test (passed)
Bug: none
Change-Id: I0960c801e6a4dd007bb1c1138871cd4b9547f68f
parent 2df4fb0e
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -156,20 +156,25 @@ TEST_F(BufferHubBufferTest, DuplicateBuffer) {
    memcpy(&desc, &aDesc, sizeof(HardwareBufferDescription));

    sp<IBufferClient> client;
    BufferHubStatus ret;
    IBufferHub::allocateBuffer_cb alloc_cb = [&](const auto& outClient, const auto& status) {
        ASSERT_EQ(status, BufferHubStatus::NO_ERROR);
        ASSERT_NE(nullptr, outClient.get());
        client = outClient;
        ret = status;
    };
    ASSERT_TRUE(bufferhub->allocateBuffer(desc, kUserMetadataSize, alloc_cb).isOk());
    EXPECT_EQ(ret, BufferHubStatus::NO_ERROR);
    ASSERT_NE(nullptr, client.get());

    IBufferClient::duplicate_cb dup_cb = [](const auto& token, const auto& status) {
        ASSERT_EQ(status, BufferHubStatus::NO_ERROR);
    hidl_handle token;
    IBufferClient::duplicate_cb dup_cb = [&](const auto& outToken, const auto& status) {
        token = outToken;
        ret = status;
    };
    EXPECT_TRUE(client->duplicate(dup_cb).isOk());
    EXPECT_EQ(ret, BufferHubStatus::NO_ERROR);
    ASSERT_NE(token.getNativeHandle(), nullptr);
    EXPECT_EQ(token->numInts, 1);
    EXPECT_EQ(token->numFds, 0);
    };
    EXPECT_TRUE(client->duplicate(dup_cb).isOk());
}

} // namespace