From: Corey Tabaka Date: Sat, 18 Mar 2017 00:07:15 +0000 (-0700) Subject: Fix POLLHUP test in libpdx UDS transport tests. X-Git-Tag: android-x86-8.1-r1~441^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=186d77217aaf769ff0a91753971e23bd249afca7;p=android-x86%2Fframeworks-native.git Fix POLLHUP test in libpdx UDS transport tests. UDS channel events require a translation call to determine the real event mask that was signaled by the service. Add the correct translation call to fix the test. Bug: None Test: build; push libpdx_uds_tests; run libpdx_uds_tests Change-Id: I18f0a5dcaf7c507d72ed5226df1fe0e2c2e3dd98 --- diff --git a/libs/vr/libpdx_uds/service_framework_tests.cpp b/libs/vr/libpdx_uds/service_framework_tests.cpp index 889160017c..9e31e82097 100644 --- a/libs/vr/libpdx_uds/service_framework_tests.cpp +++ b/libs/vr/libpdx_uds/service_framework_tests.cpp @@ -26,6 +26,7 @@ using android::pdx::BorrowedChannelHandle; using android::pdx::Channel; using android::pdx::ChannelReference; using android::pdx::ClientBase; +using android::pdx::ErrorStatus; using android::pdx::LocalChannelHandle; using android::pdx::LocalHandle; using android::pdx::Message; @@ -379,6 +380,14 @@ class TestClient : public ClientBase { data_array.size() * sizeof(int), nullptr, 0)); } + Status GetEventMask(int events) { + if (auto* client_channel = GetChannel()) { + return client_channel->GetEventMask(events); + } else { + return ErrorStatus(EINVAL); + } + } + using ClientBase::event_fd; enum : size_t { kMaxPayload = MAX_IMPULSE_LENGTH }; @@ -634,7 +643,9 @@ TEST_F(ServiceFrameworkTest, PollHup) { count = epoll_wait(client->event_fd(), &event, 1, -1); ASSERT_EQ(1, count); - ASSERT_TRUE((EPOLLHUP & event.events) != 0); + auto event_status = client->GetEventMask(event.events); + ASSERT_TRUE(event_status.ok()); + ASSERT_TRUE((EPOLLHUP & event_status.get()) != 0); } TEST_F(ServiceFrameworkTest, LargeDataSum) {