X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fserver.c;h=cdd22dea85017037a14dff0c6b644f41f428a1b3;hb=7c986323bd4eece0d805f4df17eb03ea094f84f6;hp=d0942edf4005e71b306c1d5e67036f0d59cbfd5e;hpb=7e0ffed050b62cc5dcf5d16c148185074bfd7d50;p=m6w6%2Flibmemcached diff --git a/tests/server.c b/tests/server.c index d0942edf..cdd22dea 100644 --- a/tests/server.c +++ b/tests/server.c @@ -1,17 +1,30 @@ +/* LibMemcached + * Copyright (C) 2006-2009 Brian Aker + * All rights reserved. + * + * Use and distribution licensed under the BSD license. See + * the COPYING file in the parent directory for full text. + * + * Summary: + * + */ + /* Startup, and shutdown the memcached servers. */ #define TEST_PORT_BASE MEMCACHED_DEFAULT_PORT+10 +#include "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,6 +51,25 @@ void server_startup(server_startup_st *construct) int count; int status; + 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 = (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", @@ -63,7 +95,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++) { @@ -85,8 +117,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); }