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;
world_st world;
collection_st *collection;
collection_st *next;
- uint8_t failed;
void *world_ptr;
memset(&world, 0, sizeof(world_st));
if (world.create)
world_ptr= world.create();
- else
+ else
world_ptr= NULL;
startup_ptr= (server_startup_st *)world_ptr;
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)
{
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)
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);
}