X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fserver.c;h=7c2b91c6fe7e2cef9d865a172d53f08116ba9e31;hb=cf630fa0430ea62a93a8ed8c2845c68590d09ed1;hp=e06fbd57e0d66cab5f91544c0b3080f5deb33bee;hpb=34fc4157bda6f458cc603cf32c93507dab9c4f8a;p=awesomized%2Flibmemcached diff --git a/tests/server.c b/tests/server.c index e06fbd57..7c2b91c6 100644 --- a/tests/server.c +++ b/tests/server.c @@ -1,10 +1,21 @@ +/* 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 +#define TEST_PORT_BASE MEMCACHED_DEFAULT_PORT+10 -#include "libmemcached/libmemcached_config.h" +#include "config.h" #include #include @@ -13,6 +24,7 @@ #include #include #include +#include #include #include "server.h" @@ -41,7 +53,7 @@ void server_startup(server_startup_st *construct) int status; sprintf(buffer, "/tmp/%umemc.pid", x); - if (access(buffer, F_OK) == 0) + if (access(buffer, F_OK) == 0) { FILE *fp= fopen(buffer, "r"); remove(buffer); @@ -49,9 +61,9 @@ void server_startup(server_startup_st *construct) if (fp != NULL) { if (fgets(buffer, sizeof(buffer), fp) != NULL) - { - pid_t pid = (pid_t)atol(buffer); - if (pid != 0) + { + pid_t pid= (pid_t)atoi(buffer); + if (pid != 0) kill(pid, SIGTERM); } @@ -62,15 +74,22 @@ void server_startup(server_startup_st *construct) 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); - } + 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); + MEMCACHED_BINARY, x, x + TEST_PORT_BASE, x + TEST_PORT_BASE); } - fprintf(stderr, "STARTING SERVER: %s\n", buffer); - status= system(buffer); + if (libmemcached_ping("localhost", (in_port_t)(x + TEST_PORT_BASE), NULL)) + { + fprintf(stderr, "Server on port %u already exists\n", x + TEST_PORT_BASE); + } + else + { + status= system(buffer); + fprintf(stderr, "STARTING SERVER: %s status:%d\n", buffer, status); + } count= sprintf(end_ptr, "localhost:%u,", x + TEST_PORT_BASE); end_ptr+= count; } @@ -88,7 +107,7 @@ void server_startup(server_startup_st *construct) for (x= 0; x < memcached_server_list_count(construct->servers); x++) { - printf("\t%s : %u\n", construct->servers[x].hostname, construct->servers[x].port); + printf("\t%s : %d\n", memcached_server_name(&construct->servers[x]), memcached_server_port(&construct->servers[x])); assert(construct->servers[x].fd == -1); assert(construct->servers[x].cursor_active == 0); } @@ -108,7 +127,7 @@ void server_shutdown(server_startup_st *construct) sprintf(buffer, "cat /tmp/%umemc.pid | xargs kill", x); /* We have to check the return value of this or the compiler will yell */ int sys_ret= system(buffer); - assert(sys_ret != -1); + assert(sys_ret != -1); sprintf(buffer, "/tmp/%umemc.pid", x); unlink(buffer); }