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
diff --git a/libs/ui/tests/BufferHubBuffer_test.cpp b/libs/ui/tests/BufferHubBuffer_test.cpp
index 6af8033..d30636f 100644
--- a/libs/ui/tests/BufferHubBuffer_test.cpp
+++ b/libs/ui/tests/BufferHubBuffer_test.cpp
@@ -156,20 +156,25 @@
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);
- ASSERT_NE(token.getNativeHandle(), nullptr);
- EXPECT_EQ(token->numInts, 1);
- EXPECT_EQ(token->numFds, 0);
+ 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);
}
} // namespace