From fc608d8d980be5881d7cc1a5dff652a07c2cd23a Mon Sep 17 00:00:00 2001 From: Konrad Lipinski Date: Wed, 22 Jan 2020 16:04:50 +0100 Subject: [PATCH] cynara-tests: replace select w/ poll Change-Id: If7cf3efec5d0a38a6467a1dbea962c80820c6cd5 --- .../common/cynara_test_client_async_client.cpp | 28 +++++++--------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/src/cynara-tests/common/cynara_test_client_async_client.cpp b/src/cynara-tests/common/cynara_test_client_async_client.cpp index 21c9460..885b3e1 100644 --- a/src/cynara-tests/common/cynara_test_client_async_client.cpp +++ b/src/cynara-tests/common/cynara_test_client_async_client.cpp @@ -21,6 +21,7 @@ #include #include +#include #include namespace CynaraTestClientAsync { @@ -129,35 +130,22 @@ void Client::process(int expectedResult, if (m_statusMonitor.getStatus() == DISCONNECTED) return; - int fd = m_statusMonitor.getFd(); - fd_set fds; - timeval tv; - FD_ZERO(&fds); - FD_SET(fd, &fds); - tv.tv_sec = timeoutSeconds; - tv.tv_usec = 0; - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wrestrict" - - int ret; - if (m_statusMonitor.getStatus() == READ) - ret = TEMP_FAILURE_RETRY(select(fd + 1, &fds, NULL, NULL, &tv)); - else - ret = TEMP_FAILURE_RETRY(select(fd + 1, &fds, &fds, NULL, &tv)); + pollfd fds[1]; + fds->fd = m_statusMonitor.getFd(); + fds->events = POLLIN | (m_statusMonitor.getStatus() == READ ? 0 : POLLOUT); + int ret = TEMP_FAILURE_RETRY(poll(fds, 1, timeoutSeconds * 1000)); if (ret == 0) { RUNNER_ASSERT_MSG(timeoutExpectation != EXPECT_NO_TIMEOUT, - "Unexpected select timeout." + "Unexpected poll timeout." << " ret = " << ret); return; } -#pragma GCC diagnostic push RUNNER_ASSERT_ERRNO_MSG(ret > 0, - "Select returned error:" + "Poll returned error:" << " ret = " << ret); RUNNER_ASSERT_MSG(timeoutExpectation != EXPECT_TIMEOUT, - "Select returned positive value, when timeout was expected." + "Poll returned positive value, when timeout was expected." << " ret = " << ret); RUNNER_DEFER_SCOPE(ret = cynara_async_process(m_cynara);); -- 2.7.4