modified test port number to allow concurrent testing

This commit is contained in:
John Safranek
2013-03-26 22:00:39 -07:00
parent 8e53c7a62e
commit 7d287a6ba9
11 changed files with 170 additions and 38 deletions
+32 -8
View File
@@ -43,8 +43,15 @@
CYASSL_CTX* cipherSuiteCtx = NULL;
char nonblockFlag[] = "-N";
char noVerifyFlag[] = "-d";
char portFlag[] = "-p";
char flagSep[] = " ";
char svrPort[] = "0";
#ifdef USE_WINDOWS_API
#define SNPRINTF _snprintf
#else
#define SNPRINTF snprintf
#endif
#ifdef NO_OLD_TLS
/* if the protocol version is less than tls 1.2 return 1, else 0 */
@@ -125,6 +132,7 @@ static int execute_test_case(int svr_argc, char** svr_argv,
int i;
size_t added = 0;
static int tests = 1;
char portNumber[6];
commandLine[0] = '\0';
for (i = 0; i < svr_argc; i++) {
@@ -156,11 +164,10 @@ static int execute_test_case(int svr_argc, char** svr_argv,
if (addNoVerify) {
printf("repeating test with client cert request off\n");
added += 4; /* -d plus space plus terminator */
if (added >= MAX_COMMAND_SZ)
if (added >= MAX_COMMAND_SZ || svr_argc >= MAX_ARGS)
printf("server command line too long\n");
else {
svr_argv[svr_argc] = noVerifyFlag;
svr_argc++;
svr_argv[svr_argc++] = noVerifyFlag;
svrArgs.argc = svr_argc;
strcat(commandLine, noVerifyFlag);
strcat(commandLine, flagSep);
@@ -169,16 +176,24 @@ static int execute_test_case(int svr_argc, char** svr_argv,
if (addNonBlocking) {
printf("repeating test with non blocking on\n");
added += 4; /* -N plus terminator */
if (added >= MAX_COMMAND_SZ)
if (added >= MAX_COMMAND_SZ || svr_argc >= MAX_ARGS)
printf("server command line too long\n");
else {
svr_argv[svr_argc] = nonblockFlag;
svr_argc++;
svr_argv[svr_argc++] = nonblockFlag;
svrArgs.argc = svr_argc;
strcat(commandLine, nonblockFlag);
strcat(commandLine, flagSep);
}
}
/* add port 0 */
if (svr_argc + 2 > MAX_ARGS)
printf("cannot add the magic port number flag to server\n");
else
{
svr_argv[svr_argc++] = portFlag;
svr_argv[svr_argc++] = svrPort;
svrArgs.argc = svr_argc;
}
printf("trying server command line[%d]: %s\n", tests, commandLine);
commandLine[0] = '\0';
@@ -199,7 +214,6 @@ static int execute_test_case(int svr_argc, char** svr_argv,
else {
cli_argv[cli_argc] = nonblockFlag;
cli_argc++;
cliArgs.argc = cli_argc;
strcat(commandLine, nonblockFlag);
strcat(commandLine, flagSep);
}
@@ -212,7 +226,17 @@ static int execute_test_case(int svr_argc, char** svr_argv,
svrArgs.signal = &ready;
start_thread(server_test, &svrArgs, &serverThread);
wait_tcp_ready(&svrArgs);
if (ready.port != 0)
{
if (cli_argc + 2 > MAX_ARGS)
printf("cannot add the magic port number flag to client\n");
else {
SNPRINTF(portNumber, sizeof(portNumber), "%d", ready.port);
cli_argv[cli_argc++] = portFlag;
cli_argv[cli_argc++] = portNumber;
cliArgs.argc = cli_argc;
}
}
/* start client */
client_test(&cliArgs);