summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Fan Xu <fanxu@google.com> 2018-11-16 14:38:29 -0800
committer Fan Xu <fanxu@google.com> 2018-11-19 11:08:33 -0800
commitc32c172462b63c07f73e607264f372279ba00f8c (patch)
treec97a09b32bd82686c3bb0b5ae20bf3ff2b6291a3
parent2df4fb0e4ec2cbcf0339269e894eb435c353f44a (diff)
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
-rw-r--r--libs/ui/tests/BufferHubBuffer_test.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/libs/ui/tests/BufferHubBuffer_test.cpp b/libs/ui/tests/BufferHubBuffer_test.cpp
index 6af8033e76..d30636f8cc 100644
--- a/libs/ui/tests/BufferHubBuffer_test.cpp
+++ b/libs/ui/tests/BufferHubBuffer_test.cpp
@@ -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);
- 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