X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ftest.c;h=9ffe21c7e4e8d5dc4bf94d5b260235a2cf819775;hb=9a993218013a44dd34cb809858f6eb8b8fb84a72;hp=1de861ab6d7c5970e9b422c374668091f8fa66bb;hpb=201fa21f8b3c3bf7cef0e705ae403d3ad7841341;p=m6w6%2Flibmemcached diff --git a/tests/test.c b/tests/test.c index 1de861ab..9ffe21c7 100644 --- a/tests/test.c +++ b/tests/test.c @@ -13,6 +13,9 @@ #include "test.h" +#define TEST_PORT_BASE MEMCACHED_DEFAULT_PORT+10 +#define TEST_SERVERS 2 + long int timedif(struct timeval a, struct timeval b) { register int us, s; @@ -24,6 +27,46 @@ long int timedif(struct timeval a, struct timeval b) return s + us; } +char *server_startup() +{ + unsigned int x; + char server_string_buffer[8096]; + char *end_ptr; + + end_ptr= server_string_buffer; + + for (x= 0; x < TEST_SERVERS; x++) + { + char buffer[1024]; /* Nothing special for number */ + int count; + + sprintf(buffer, "memcached -d -P /tmp/%umemc.pid -p %u", x, x+ TEST_PORT_BASE); + system(buffer); + count= sprintf(end_ptr, "localhost:%u,", x + TEST_PORT_BASE); + end_ptr+= count; + } + *end_ptr= 0; + + return strdup(server_string_buffer); +} + +void server_shutdown(char *server_string) +{ + unsigned int x; + + if (server_string) + { + for (x= 0; x < TEST_SERVERS; x++) + { + char buffer[1024]; /* Nothing special for number */ + sprintf(buffer, "cat /tmp/%umemc.pid | xargs kill", x); + system(buffer); + } + + free(server_string); + } +} + int main(int argc, char *argv[]) { unsigned int x; @@ -43,14 +86,22 @@ int main(int argc, char *argv[]) if (argc == 3) wildcard= argv[2]; - if (!(server_list= getenv("MEMCACHED_SERVERS"))) - server_list= "localhost"; + if ((server_list= getenv("MEMCACHED_SERVERS"))) + { + printf("servers %s\n", server_list); + servers= memcached_servers_parse(server_list); + server_list= NULL; + } + else + { + server_list= server_startup(); + printf("servers %s\n", server_list); + servers= memcached_servers_parse(server_list); + } + assert(servers); - printf("servers %s\n", server_list); srandom(time(NULL)); - servers= memcached_servers_parse(server_list); - assert(servers); for (x= 0; x < memcached_server_list_count(servers); x++) { @@ -75,25 +126,28 @@ int main(int argc, char *argv[]) for (x= 0; run->name; run++) { + unsigned int loop; + memcached_st *memc; + memcached_return rc; + struct timeval start_time, end_time; + if (wildcard && strcmp(wildcard, run->name)) continue; fprintf(stderr, "Testing %s", run->name); - memcached_st *memc; - memcached_return rc; - struct timeval start_time, end_time; - memc= memcached_create(NULL); assert(memc); - if (run->requires_flush) - memcached_flush(memc, 0); - rc= memcached_server_push(memc, servers); assert(rc == MEMCACHED_SUCCESS); - unsigned int loop; + if (run->requires_flush) + { + memcached_flush(memc, 0); + memcached_quit(memc); + } + for (loop= 0; loop < memcached_server_list_count(servers); loop++) { assert(memc->hosts[loop].stack_responses == 0); @@ -104,7 +158,9 @@ int main(int argc, char *argv[]) if (next->pre) { memcached_return rc; + WATCHPOINT_STRING(next->name); rc= next->pre(memc); + WATCHPOINT; if (rc != MEMCACHED_SUCCESS) { @@ -137,5 +193,7 @@ error: memcached_server_list_free(servers); + server_shutdown(server_list); + return 0; }