From 5abfe9d1cf012cd299d0eef91d05e85362a8466e Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Thu, 29 Dec 2016 11:05:10 -0700 Subject: [PATCH] random port for MinGW with unit tests --- tests/api.c | 23 ++++++++++++++++++----- wolfssl/test.h | 2 ++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/tests/api.c b/tests/api.c index 26eea6794..e20303cb2 100644 --- a/tests/api.c +++ b/tests/api.c @@ -529,7 +529,6 @@ static void test_wolfSSL_SetTmpDH_buffer(void) wolfSSL_free(ssl); wolfSSL_CTX_free(ctx); - printf("SUCCESS4\n"); #endif } @@ -637,8 +636,7 @@ static THREAD_RETURN WOLFSSL_THREAD test_server_nofail(void* args) ctx = wolfSSL_CTX_new(method); #if defined(USE_WINDOWS_API) - /* Generate random port for testing */ - port = GetRandomPort(); + port = ((func_args*)args)->signal->port; #elif defined(NO_MAIN_DRIVER) && !defined(WOLFSSL_SNIFFER) && \ !defined(WOLFSSL_MDK_SHELL) && !defined(WOLFSSL_TIRTOS) /* Let tcp_listen assign port */ @@ -885,8 +883,7 @@ static THREAD_RETURN WOLFSSL_THREAD run_wolfssl_server(void* args) ((func_args*)args)->return_code = TEST_FAIL; #if defined(USE_WINDOWS_API) - /* Generate random port for testing */ - port = GetRandomPort(); + port = ((func_args*)args)->signal->port; #elif defined(NO_MAIN_DRIVER) && !defined(WOLFSSL_SNIFFER) && \ !defined(WOLFSSL_MDK_SHELL) && !defined(WOLFSSL_TIRTOS) /* Let tcp_listen assign port */ @@ -1149,6 +1146,11 @@ static void test_wolfSSL_read_write(void) StartTCP(); InitTcpReady(&ready); +#if defined(USE_WINDOWS_API) + /* use RNG to get random port if using windows */ + ready.port = GetRandomPort(); +#endif + server_args.signal = &ready; client_args.signal = &ready; @@ -1186,6 +1188,11 @@ static void test_wolfSSL_dtls_export(void) InitTcpReady(&ready); +#if defined(USE_WINDOWS_API) + /* use RNG to get random port if using windows */ + ready.port = GetRandomPort(); +#endif + /* set using dtls */ XMEMSET(&server_cbf, 0, sizeof(callback_functions)); XMEMSET(&client_cbf, 0, sizeof(callback_functions)); @@ -1241,6 +1248,12 @@ static void test_wolfSSL_client_server(callback_functions* client_callbacks, /* RUN Server side */ InitTcpReady(&ready); + +#if defined(USE_WINDOWS_API) + /* use RNG to get random port if using windows */ + ready.port = GetRandomPort(); +#endif + server_args.signal = &ready; client_args.signal = &ready; start_thread(run_wolfssl_server, &server_args, &serverThread); diff --git a/wolfssl/test.h b/wolfssl/test.h index e0a3c1a0e..b0b751785 100644 --- a/wolfssl/test.h +++ b/wolfssl/test.h @@ -664,6 +664,8 @@ static INLINE void build_addr(SOCKADDR_IN_T* addr, const char* peer, static INLINE void tcp_socket(SOCKET_T* sockfd, int udp, int sctp) { + (void)sctp; + if (udp) *sockfd = socket(AF_INET_V, SOCK_DGRAM, IPPROTO_UDP); #ifdef WOLFSSL_SCTP