X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Flibmemcached_world.h;h=5fab96fe2a9e71f00db4d24061fb6f5f008433d6;hb=ec18b17736a6e0ce98994daf5a6576e9658e4a1d;hp=2e7aa25da818cbeede99ead981ecab409dfa739a;hpb=a101fe771182e664d67a1609a6d9dee3d161dc81;p=m6w6%2Flibmemcached diff --git a/tests/libmemcached_world.h b/tests/libmemcached_world.h index 2e7aa25d..5fab96fe 100644 --- a/tests/libmemcached_world.h +++ b/tests/libmemcached_world.h @@ -39,8 +39,6 @@ #pragma once -#include - /* The structure we use for the test system */ struct libmemcached_test_container_st { @@ -76,50 +74,27 @@ static void *world_create(libtest::server_startup_st& servers, test_return_t& er return NULL; } - for (uint32_t x= 0; x < servers.count(); x++) + for (uint32_t x= 0; x < servers.servers_to_run(); x++) { - in_port_t port; - - char variable_buffer[1024]; - snprintf(variable_buffer, sizeof(variable_buffer), "LIBMEMCACHED_PORT_%u", x); + in_port_t port= libtest::get_free_port(); - char *var; - if ((var= getenv(variable_buffer))) - { - port= in_port_t(atoi(var)); - } - else - { - port= in_port_t(TEST_PORT_BASE +x); - } - - const char *argv[1]= { "memcached" }; if (servers.sasl()) { - if (not server_startup(servers, "memcached-sasl", port, 1, argv)) + if (server_startup(servers, "memcached-sasl", port, 0, NULL) == false) { - error= TEST_FATAL; - return NULL; + fatal_message("Could not start memcached-sasl"); } } else { - if (not server_startup(servers, "memcached", port, 1, argv)) + if (server_startup(servers, "memcached", port, 0, NULL) == false) { - error= TEST_FATAL; - return NULL; + fatal_message("Could not start memcached"); } } } libmemcached_test_container_st *global_container= new libmemcached_test_container_st(servers); - if (global_container == NULL) - { - error= TEST_MEMORY_ALLOCATION_FAILURE; - return NULL; - } - - error= TEST_SUCCESS; return global_container; } @@ -153,17 +128,6 @@ static test_return_t world_container_startup(libmemcached_test_container_st *con } } - for (uint32_t host= 0; host < memcached_server_count(container->parent); ++host) - { - memcached_server_instance_st instance= - memcached_server_instance_by_position(container->parent, host); - - if (instance->type == MEMCACHED_CONNECTION_TCP) - { - test_true_got(memcached_server_port(instance) >= TEST_PORT_BASE, memcached_server_port(instance)); - } - } - return TEST_SUCCESS; } @@ -201,8 +165,7 @@ static test_return_t world_pre_run(libmemcached_test_container_st *container) test_true(container->memc); for (uint32_t loop= 0; loop < memcached_server_list_count(container->memc->servers); loop++) { - memcached_server_instance_st instance= - memcached_server_instance_by_position(container->memc, loop); + memcached_server_instance_st instance= memcached_server_instance_by_position(container->memc, loop); test_compare(-1, instance->fd); test_compare(0U, instance->cursor_active); @@ -245,63 +208,66 @@ static bool world_destroy(void *object) typedef test_return_t (*libmemcached_test_callback_fn)(memcached_st *); -static test_return_t _runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) -{ - if (func) +class LibmemcachedRunner : public libtest::Runner { +public: + test_return_t run(test_callback_fn* func, void *object) { - test_true(container); - test_true(container->memc); - test_return_t ret; - try { - ret= func(container->memc); - } - catch (std::exception& e) - { - libtest::Error << e.what(); - return TEST_FAILURE; - } - - return ret; + return _runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); } - return TEST_SUCCESS; -} - -static test_return_t _pre_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) -{ - if (func) + test_return_t pre(test_callback_fn* func, void *object) { - return func(container->parent); + return _pre_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); } - return TEST_SUCCESS; -} - -static test_return_t _post_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) -{ - if (func) + test_return_t post(test_callback_fn* func, void *object) { - return func(container->parent); + return _post_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); } - return TEST_SUCCESS; -} - -class LibmemcachedRunner : public libtest::Runner { -public: - test_return_t run(test_callback_fn* func, void *object) +private: + test_return_t _runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) { - return _runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); + test_compare(true, check()); + + if (func) + { + test_true(container); + test_true(container->memc); + test_return_t ret; + try { + ret= func(container->memc); + } + catch (std::exception& e) + { + libtest::Error << e.what(); + return TEST_FAILURE; + } + + return ret; + } + + return TEST_SUCCESS; } - test_return_t pre(test_callback_fn* func, void *object) + test_return_t _pre_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) { - return _pre_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); + if (func) + { + return func(container->parent); + } + + return TEST_SUCCESS; } - test_return_t post(test_callback_fn* func, void *object) + test_return_t _post_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) { - return _post_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); + if (func) + { + return func(container->parent); + } + + return TEST_SUCCESS; } };