X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ftest.c;h=7a5e3132a238c5a5d693574e86a1d6b039d2fe44;hb=b4de8d3fd063b9017797dd9809ab3acb8a537606;hp=78fe4a70ff8b284ee4db96e3256ef4eed46135bb;hpb=15b99ad0b4c2b71bdbeb58580914d442f95d75f0;p=m6w6%2Flibmemcached diff --git a/tests/test.c b/tests/test.c index 78fe4a70..7a5e3132 100644 --- a/tests/test.c +++ b/tests/test.c @@ -25,8 +25,34 @@ static long int timedif(struct timeval a, struct timeval b) return s + us; } +static const char *test_strerror(test_return_t code) +{ + switch (code) { + case TEST_SUCCESS: + return "ok"; + case TEST_FAILURE: + return "failed"; + case TEST_MEMORY_ALLOCATION_FAILURE: + return "memory allocation"; + case TEST_SKIPPED: + return "skipped"; + case TEST_MAXIMUM_RETURN: + default: + fprintf(stderr, "Unknown return value\n"); + abort(); + } + +} + +void create_core(void) +{ + if (getenv("LIBMEMCACHED_NO_COREDUMP") == NULL && fork() == 0) + abort(); +} + int main(int argc, char *argv[]) { + test_return_t failed; unsigned int x; char *collection_to_run= NULL; char *wildcard= NULL; @@ -35,7 +61,6 @@ int main(int argc, char *argv[]) world_st world; collection_st *collection; collection_st *next; - uint8_t failed; void *world_ptr; memset(&world, 0, sizeof(world_st)); @@ -44,7 +69,7 @@ int main(int argc, char *argv[]) if (world.create) world_ptr= world.create(); - else + else world_ptr= NULL; startup_ptr= (server_startup_st *)world_ptr; @@ -70,7 +95,7 @@ int main(int argc, char *argv[]) { unsigned int loop; memcached_st *memc; - memcached_return rc; + memcached_return_t rc; struct timeval start_time, end_time; long int load_time; @@ -80,10 +105,10 @@ int main(int argc, char *argv[]) fprintf(stderr, "Testing %s", run->name); memc= memcached_create(NULL); - assert(memc); + test_truth(memc); rc= memcached_server_push(memc, servers); - assert(rc == MEMCACHED_SUCCESS); + test_truth(rc == MEMCACHED_SUCCESS); if (run->requires_flush) { @@ -93,8 +118,8 @@ int main(int argc, char *argv[]) for (loop= 0; loop < memcached_server_list_count(servers); loop++) { - assert(memc->hosts[loop].fd == -1); - assert(memc->hosts[loop].cursor_active == 0); + test_truth(memc->hosts[loop].fd == -1); + test_truth(memc->hosts[loop].cursor_active == 0); } if (next->pre) @@ -112,17 +137,14 @@ int main(int argc, char *argv[]) failed= run->function(memc); gettimeofday(&end_time, NULL); load_time= timedif(end_time, start_time); - if (failed) - fprintf(stderr, "\t\t\t\t\t %ld.%03ld [ failed ]\n", load_time / 1000, - load_time % 1000); - else - fprintf(stderr, "\t\t\t\t\t %ld.%03ld [ ok ]\n", load_time / 1000, - load_time % 1000); + + fprintf(stderr, "\t\t\t\t\t %ld.%03ld [ %s ]\n", load_time / 1000, + load_time % 1000, test_strerror(failed)); if (next->post) (void)next->post(memc); - assert(memc); + test_truth(memc); error: memcached_free(memc); }