X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fserver.c;h=f0926695133571f946ccfcad05a1f06dc11a5326;hb=4bad80470c3895cf00f65359e6b8fa180ec9520f;hp=c8e1d98fa42fa4692d85931c58006bc699ed2d23;hpb=3994a4a1ef81dfcf1e893ddb08e923c65e337ebd;p=awesomized%2Flibmemcached diff --git a/tests/server.c b/tests/server.c index c8e1d98f..f0926695 100644 --- a/tests/server.c +++ b/tests/server.c @@ -3,12 +3,16 @@ */ #define TEST_PORT_BASE MEMCACHED_DEFAULT_PORT+10 + +#include "config.h" + #include #include #include #include #include -#include +#include +#include #include #include "server.h" @@ -25,7 +29,6 @@ void server_startup(server_startup_st *construct) } else { - WATCHPOINT; { char server_string_buffer[8096]; char *end_ptr; @@ -35,12 +38,39 @@ void server_startup(server_startup_st *construct) { char buffer[1024]; /* Nothing special for number */ int count; + int status; + + sprintf(buffer, "/tmp/%umemc.pid", x); + if (access(buffer, F_OK) == 0) + { + FILE *fp= fopen(buffer, "r"); + remove(buffer); - if (construct->udp) - sprintf(buffer, "memcached -d -P /tmp/%umemc.pid -U %u", x, x+ TEST_PORT_BASE); + if (fp != NULL) + { + if (fgets(buffer, sizeof(buffer), fp) != NULL) + { + pid_t pid = (pid_t)atol(buffer); + if (pid != 0) + kill(pid, SIGTERM); + } + + fclose(fp); + } + } + + if (x == 0) + { + sprintf(buffer, "%s -d -P /tmp/%umemc.pid -t 1 -p %u -U %u -m 128", + MEMCACHED_BINARY, x, x + TEST_PORT_BASE, x + TEST_PORT_BASE); + } else - sprintf(buffer, "memcached -d -P /tmp/%umemc.pid -p %u", x, x+ TEST_PORT_BASE); - system(buffer); + { + sprintf(buffer, "%s -d -P /tmp/%umemc.pid -t 1 -p %u -U %u", + MEMCACHED_BINARY, x, x + TEST_PORT_BASE, x + TEST_PORT_BASE); + } + fprintf(stderr, "STARTING SERVER: %s\n", buffer); + status= system(buffer); count= sprintf(end_ptr, "localhost:%u,", x + TEST_PORT_BASE); end_ptr+= count; } @@ -54,7 +84,7 @@ void server_startup(server_startup_st *construct) assert(construct->servers); - srandom(time(NULL)); + srandom((unsigned int)time(NULL)); for (x= 0; x < memcached_server_list_count(construct->servers); x++) { @@ -76,8 +106,9 @@ void server_shutdown(server_startup_st *construct) { char buffer[1024]; /* Nothing special for number */ sprintf(buffer, "cat /tmp/%umemc.pid | xargs kill", x); - system(buffer); - + /* We have to check the return value of this or the compiler will yell */ + int sys_ret= system(buffer); + assert(sys_ret != -1); sprintf(buffer, "/tmp/%umemc.pid", x); unlink(buffer); }