From 4b7f7802c897341a564c91d984ecece09df3309d Mon Sep 17 00:00:00 2001 From: Florian Fischer <florian.fischer@muhq.space> Date: Mon, 17 May 2021 20:03:08 +0200 Subject: [PATCH] [SimpleDiskAndNetworkTest] use *AndWait() or waitAndSetErrno() and correct types errno was never set on error and thus the DIE_MSG_ERRNO did not properly report what happened. Found during changing Future member types. --- tests/io/SimpleDiskAndNetworkTest.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tests/io/SimpleDiskAndNetworkTest.cpp b/tests/io/SimpleDiskAndNetworkTest.cpp index 182bcdbf..919c2bf7 100644 --- a/tests/io/SimpleDiskAndNetworkTest.cpp +++ b/tests/io/SimpleDiskAndNetworkTest.cpp @@ -26,9 +26,8 @@ static void server_func(int sockfd) { struct sockaddr_in clientaddr; socklen_t clientaddr_len = sizeof(clientaddr); - auto client_fd = - emper::io::accept(sockfd, reinterpret_cast<struct sockaddr*>(&clientaddr), &clientaddr_len) - ->wait(); + auto client_fd = emper::io::acceptAndWait(sockfd, reinterpret_cast<struct sockaddr*>(&clientaddr), + &clientaddr_len); if (client_fd < 0) { DIE_MSG_ERRNO("accept failed"); @@ -40,7 +39,7 @@ static void server_func(int sockfd) { char read_buf[MAX]; for (;;) { - int received = emper::io::recv(client_fd, recv_buf, sizeof(recv_buf), 0)->wait(); + ssize_t received = emper::io::recvAndWait(client_fd, recv_buf, sizeof(recv_buf), 0); if (received == 0) { exit(EXIT_SUCCESS); } @@ -57,7 +56,7 @@ static void server_func(int sockfd) { DIE_MSG_ERRNO("mkstemp failed"); } - int written = emper::io::writeFile(file_fd, recv_buf, received)->wait(); + ssize_t written = emper::io::writeFileAndWait(file_fd, recv_buf, received); if (written < 0) { DIE_MSG_ERRNO("write failed"); } @@ -68,7 +67,7 @@ static void server_func(int sockfd) { DIE_MSG_ERRNO("open failed"); } - int bytes_read = emper::io::readFile(file_fd, read_buf, written)->wait(); + ssize_t bytes_read = emper::io::readFileAndWait(file_fd, read_buf, written); if (bytes_read == 0) { DIE_MSG("nothing to read"); } @@ -78,7 +77,7 @@ static void server_func(int sockfd) { } close(file_fd); - int sent = emper::io::send(client_fd, read_buf, bytes_read, 0)->wait(); + ssize_t sent = emper::io::sendAndWait(client_fd, read_buf, bytes_read, 0); if (sent == 0) { DIE_MSG("client socket unexpected shutdown"); } @@ -107,7 +106,7 @@ static void server_func(int sockfd) { iov[1].iov_len = s2.length(); auto writevFuture = emper::io::writev(file_fd, &iov[0], iovcnt); - written = writevFuture->wait(); + written = writevFuture->waitAndSetErrno(); if (written < 0) { DIE_MSG_ERRNO("wrtev failed"); } @@ -119,7 +118,7 @@ static void server_func(int sockfd) { } auto readFuture = emper::io::readFile(file_fd, read_buf, written, 0, true); - bytes_read = readFuture->wait(); + bytes_read = readFuture->waitAndSetErrno(); if (bytes_read == 0) { DIE_MSG("nothing to read"); } -- GitLab