Skip to content

Commit

Permalink
tests: Parallelize tests
Browse files Browse the repository at this point in the history
Randomize (using PID) the port numbers used for the tests so they
don't clash.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
  • Loading branch information
chrissie-c committed Nov 2, 2017
1 parent c96057f commit 7f263a0
Show file tree
Hide file tree
Showing 21 changed files with 64 additions and 105 deletions.
4 changes: 1 addition & 3 deletions libknet/tests/api_knet_handle_clear_stats.c
Expand Up @@ -47,9 +47,7 @@ static void test(void)
int savederrno;
struct sockaddr_storage lo;

memset(&lo, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &lo, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&lo, 0) < 0) {
printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
4 changes: 1 addition & 3 deletions libknet/tests/api_knet_host_remove.c
Expand Up @@ -71,9 +71,7 @@ static void test(void)

printf("Test knet_host_remove with configured host_id and links\n");

memset(&ss, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.0", "50000", &ss, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&ss, 0) < 0) {
printf("Unable to convert str to sockaddr: %s\n", strerror(errno));
knet_host_remove(knet_h, 1);
knet_handle_free(knet_h);
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_clear_config.c
Expand Up @@ -27,16 +27,12 @@ static void test(void)
int logfds[2];
struct sockaddr_storage src, dst;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_get_config.c
Expand Up @@ -29,16 +29,12 @@ static void test(void)
uint8_t dynamic = 0, transport = 0;
uint64_t flags;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_get_enable.c
Expand Up @@ -28,16 +28,12 @@ static void test(void)
struct sockaddr_storage src, dst;
unsigned int enabled;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_get_link_list.c
Expand Up @@ -29,16 +29,12 @@ static void test(void)
uint8_t link_ids[KNET_MAX_LINK];
size_t link_ids_entries = 0;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_get_ping_timers.c
Expand Up @@ -29,16 +29,12 @@ static void test(void)
time_t interval = 0, timeout = 0;
unsigned int precision = 0;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_get_pong_count.c
Expand Up @@ -28,16 +28,12 @@ static void test(void)
struct sockaddr_storage src, dst;
uint8_t pong_count = 0;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_get_priority.c
Expand Up @@ -28,16 +28,12 @@ static void test(void)
struct sockaddr_storage src, dst;
uint8_t priority = 0;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_get_status.c
Expand Up @@ -28,16 +28,12 @@ static void test(void)
struct sockaddr_storage src, dst;
struct knet_link_status status;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
20 changes: 11 additions & 9 deletions libknet/tests/api_knet_link_set_config.c
Expand Up @@ -25,22 +25,24 @@ static void test(void)
{
knet_handle_t knet_h;
int logfds[2];
char src_portstr[32];
char dst_portstr[32];
struct sockaddr_storage src, dst;
struct sockaddr_in *src_in = (struct sockaddr_in *)&src;
struct sockaddr_in *dst_in = (struct sockaddr_in *)&dst;
struct knet_link_status link_status;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
sprintf(src_portstr, "%d", ntohs(src_in->sin_port));

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
sprintf(dst_portstr, "%d", ntohs(dst_in->sin_port));

printf("Test knet_link_set_config incorrect knet_h\n");

Expand Down Expand Up @@ -139,7 +141,7 @@ static void test(void)

if ((link_status.enabled != 0) ||
(strcmp(link_status.src_ipaddr, "127.0.0.1")) ||
(strcmp(link_status.src_port, "50000")) ||
(strcmp(link_status.src_port, src_portstr)) ||
(knet_h->host_index[1]->link[0].dynamic != KNET_LINK_DYNIP)) {
printf("knet_link_set_config failed to set configuration. enabled: %d src_addr %s src_port %s dynamic %u\n",
link_status.enabled, link_status.src_ipaddr, link_status.src_port, knet_h->host_index[1]->link[0].dynamic);
Expand Down Expand Up @@ -238,9 +240,9 @@ static void test(void)

if ((link_status.enabled != 0) ||
(strcmp(link_status.src_ipaddr, "127.0.0.1")) ||
(strcmp(link_status.src_port, "50000")) ||
(strcmp(link_status.src_port, src_portstr)) ||
(strcmp(link_status.dst_ipaddr, "127.0.0.1")) ||
(strcmp(link_status.dst_port, "50001")) ||
(strcmp(link_status.dst_port, dst_portstr)) ||
(knet_h->host_index[1]->link[0].dynamic != KNET_LINK_STATIC)) {
printf("knet_link_set_config failed to set configuration. enabled: %d src_addr %s src_port %s dst_addr %s dst_port %s dynamic %u\n",
link_status.enabled, link_status.src_ipaddr, link_status.src_port, link_status.dst_ipaddr, link_status.dst_port, knet_h->host_index[1]->link[0].dynamic);
Expand Down
16 changes: 4 additions & 12 deletions libknet/tests/api_knet_link_set_enable.c
Expand Up @@ -27,16 +27,12 @@ static void test_udp(void)
int logfds[2];
struct sockaddr_storage src, dst;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down Expand Up @@ -189,16 +185,12 @@ static void test_sctp(void)
int logfds[2];
struct sockaddr_storage src, dst;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_set_ping_timers.c
Expand Up @@ -27,16 +27,12 @@ static void test(void)
int logfds[2];
struct sockaddr_storage src, dst;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_set_pong_count.c
Expand Up @@ -27,16 +27,12 @@ static void test(void)
int logfds[2];
struct sockaddr_storage src, dst;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
8 changes: 2 additions & 6 deletions libknet/tests/api_knet_link_set_priority.c
Expand Up @@ -27,16 +27,12 @@ static void test(void)
int logfds[2];
struct sockaddr_storage src, dst;

memset(&src, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &src, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&src, 0) < 0) {
printf("Unable to convert src to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}

memset(&dst, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50001", &dst, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&dst, 1) < 0) {
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
4 changes: 1 addition & 3 deletions libknet/tests/api_knet_send.c
Expand Up @@ -47,9 +47,7 @@ static void test(void)
int savederrno;
struct sockaddr_storage lo;

memset(&lo, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &lo, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&lo, 0) < 0) {
printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
4 changes: 1 addition & 3 deletions libknet/tests/api_knet_send_compress.c
Expand Up @@ -49,9 +49,7 @@ static void test(const char *model)
struct sockaddr_storage lo;
struct knet_handle_compress_cfg knet_handle_compress_cfg;

memset(&lo, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &lo, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&lo, 0) < 0) {
printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
4 changes: 1 addition & 3 deletions libknet/tests/api_knet_send_loopback.c
Expand Up @@ -64,9 +64,7 @@ static void test(void)
int savederrno;
struct sockaddr_storage lo;

memset(&lo, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &lo, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&lo, 1) < 0) {
printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
4 changes: 1 addition & 3 deletions libknet/tests/api_knet_send_sync.c
Expand Up @@ -101,9 +101,7 @@ static void test(void)
char send_buff[KNET_MAX_PACKET_SIZE];
struct sockaddr_storage lo;

memset(&lo, 0, sizeof(struct sockaddr_storage));

if (knet_strtoaddr("127.0.0.1", "50000", &lo, sizeof(struct sockaddr_storage)) < 0) {
if (make_local_sockaddr(&lo, 1) < 0) {
printf("Unable to convert loopback to sockaddr: %s\n", strerror(errno));
exit(FAIL);
}
Expand Down
20 changes: 20 additions & 0 deletions libknet/tests/test-common.c
Expand Up @@ -433,3 +433,23 @@ int knet_handle_stop(knet_handle_t knet_h)
}
return 0;
}

int make_local_sockaddr(struct sockaddr_storage *lo, uint16_t offset)
{
uint32_t port;
char portstr[32];

/* Use the pid if we can. but makes sure its in a sensible range */
port = (uint32_t)getpid() + offset;
if (port < 1024) {
port += 1024;
}
if (port > 65536) {
port = port & 0xFFFF;
}
sprintf(portstr, "%d", port);
memset(lo, 0, sizeof(struct sockaddr_storage));
fprintf(stderr, "Using port %d\n", port);

return knet_strtoaddr("127.0.0.1", portstr, lo, sizeof(struct sockaddr_storage));
}
1 change: 1 addition & 0 deletions libknet/tests/test-common.h
Expand Up @@ -67,5 +67,6 @@ void close_logpipes(int *logfds);
void flush_logs(int logfd, FILE *std);
int start_logthread(int logfd, FILE *std);
int stop_logthread(void);
int make_local_sockaddr(struct sockaddr_storage *lo, uint16_t offset);

#endif

0 comments on commit 7f263a0

Please sign in to comment.