X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fserver.c;h=8679c6249a621a8ece2219bdf03a412897358308;hb=fd5128ba25070702e208e0f26961d6eb7dd76e5e;hp=5023188c0dd088e533aa27e5b2ee60b4c8828d68;hpb=6bf9c46f8a54cba6cf0c6c78e88128e91b53779c;p=m6w6%2Flibmemcached diff --git a/tests/server.c b/tests/server.c index 5023188c..8679c624 100644 --- a/tests/server.c +++ b/tests/server.c @@ -4,14 +4,16 @@ #define TEST_PORT_BASE MEMCACHED_DEFAULT_PORT+10 +#include "libmemcached/libmemcached_config.h" + #include #include #include #include #include +#include #include #include -#include "libmemcached/libmemcached_config.h" #include "server.h" void server_startup(server_startup_st *construct) @@ -38,24 +40,36 @@ void server_startup(server_startup_st *construct) int count; int status; - if (construct->udp){ - if(x == 0) { - sprintf(buffer, "%s -d -P /tmp/%umemc.pid -t 1 -U %u -m 128", - MEMCACHED_BINARY, x, x+ TEST_PORT_BASE); - } else { - sprintf(buffer, "%s -d -P /tmp/%umemc.pid -t 1 -U %u", - MEMCACHED_BINARY, x, x+ TEST_PORT_BASE); + sprintf(buffer, "/tmp/%umemc.pid", x); + if (access(buffer, F_OK) == 0) + { + FILE *fp= fopen(buffer, "r"); + remove(buffer); + + if (fp != NULL) + { + if (fgets(buffer, sizeof(buffer), fp) != NULL) + { + pid_t pid = atol(buffer); + if (pid != 0) + kill(pid, SIGTERM); + } + + fclose(fp); } } - else{ - if(x == 0) { - sprintf(buffer, "%s -d -P /tmp/%umemc.pid -t 1 -p %u -m 128", - MEMCACHED_BINARY, x, x+ TEST_PORT_BASE); - } else { - sprintf(buffer, "%s -d -P /tmp/%umemc.pid -t 1 -p %u", - MEMCACHED_BINARY, x, x+ TEST_PORT_BASE); - } + + 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, "%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; @@ -92,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); }