Skip to content

Commit

Permalink
[tests] improve wait for packet implementation to flush logs during wait
Browse files Browse the repository at this point in the history
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
  • Loading branch information
fabbione committed May 9, 2019
1 parent 43b3f05 commit e782512
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 10 deletions.
2 changes: 1 addition & 1 deletion libknet/tests/api_knet_handle_clear_stats.c
Expand Up @@ -160,7 +160,7 @@ static void test(void)

flush_logs(logfds[0], stdout);

if (wait_for_packet(knet_h, 10, datafd)) {
if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
printf("Error waiting for packet: %s\n", strerror(errno));
knet_link_set_enable(knet_h, 1, 0, 0);
knet_link_clear_config(knet_h, 1, 0);
Expand Down
2 changes: 1 addition & 1 deletion libknet/tests/api_knet_send.c
Expand Up @@ -246,7 +246,7 @@ static void test(uint8_t transport)

flush_logs(logfds[0], stdout);

if (wait_for_packet(knet_h, 10, datafd)) {
if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
printf("Error waiting for packet: %s\n", strerror(errno));
knet_link_set_enable(knet_h, 1, 0, 0);
knet_link_clear_config(knet_h, 1, 0);
Expand Down
2 changes: 1 addition & 1 deletion libknet/tests/api_knet_send_compress.c
Expand Up @@ -170,7 +170,7 @@ static void test(const char *model)

flush_logs(logfds[0], stdout);

if (wait_for_packet(knet_h, 10, datafd)) {
if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
printf("Error waiting for packet: %s\n", strerror(errno));
knet_link_set_enable(knet_h, 1, 0, 0);
knet_link_clear_config(knet_h, 1, 0);
Expand Down
2 changes: 1 addition & 1 deletion libknet/tests/api_knet_send_crypto.c
Expand Up @@ -171,7 +171,7 @@ static void test(const char *model)

flush_logs(logfds[0], stdout);

if (wait_for_packet(knet_h, 10, datafd)) {
if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
printf("Error waiting for packet: %s\n", strerror(errno));
knet_link_set_enable(knet_h, 1, 0, 0);
knet_link_clear_config(knet_h, 1, 0);
Expand Down
4 changes: 2 additions & 2 deletions libknet/tests/api_knet_send_loopback.c
Expand Up @@ -251,7 +251,7 @@ static void test(void)

flush_logs(logfds[0], stdout);

if (wait_for_packet(knet_h, 10, datafd)) {
if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
printf("Error waiting for packet: %s\n", strerror(errno));
knet_link_set_enable(knet_h, 1, 0, 0);
knet_link_clear_config(knet_h, 1, 0);
Expand Down Expand Up @@ -352,7 +352,7 @@ static void test(void)

flush_logs(logfds[0], stdout);

if (wait_for_packet(knet_h, 10, datafd)) {
if (wait_for_packet(knet_h, 10, datafd, logfds[0], stdout)) {
printf("Error waiting for packet: %s\n", strerror(errno));
knet_link_set_enable(knet_h, 1, 0, 0);
knet_link_clear_config(knet_h, 1, 0);
Expand Down
7 changes: 4 additions & 3 deletions libknet/tests/test-common.c
Expand Up @@ -485,7 +485,7 @@ int wait_for_host(knet_handle_t knet_h, uint16_t host_id, int seconds, int logfd
return -1;
}

int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd)
int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd, int logfd, FILE *std)
{
fd_set rfds;
struct timeval tv;
Expand All @@ -500,7 +500,7 @@ int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd)
FD_ZERO(&rfds);
FD_SET(datafd, &rfds);

tv.tv_sec = seconds;
tv.tv_sec = 1;
tv.tv_usec = 0;

err = select(datafd+1, &rfds, NULL, NULL, &tv);
Expand All @@ -509,7 +509,8 @@ int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd)
* pick an arbitrary 10 times loop (multiplied by waiting seconds)
* before failing.
*/
if ((!err) && (i < 10)) {
if ((!err) && (i < seconds)) {
flush_logs(logfd, std);
i++;
goto try_again;
}
Expand Down
2 changes: 1 addition & 1 deletion libknet/tests/test-common.h
Expand Up @@ -70,6 +70,6 @@ int stop_logthread(void);
int make_local_sockaddr(struct sockaddr_storage *lo, uint16_t offset);
int make_local_sockaddr6(struct sockaddr_storage *lo, uint16_t offset);
int wait_for_host(knet_handle_t knet_h, uint16_t host_id, int seconds, int logfd, FILE *std);
int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd);
int wait_for_packet(knet_handle_t knet_h, int seconds, int datafd, int logfd, FILE *std);

#endif

0 comments on commit e782512

Please sign in to comment.