X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Flibmemcached_world.h;h=8bc48a71755102d9747a3d3ab22d186c64ffdb7b;hb=ab130c459a975d24628169901addb191ef2cdf87;hp=5fab96fe2a9e71f00db4d24061fb6f5f008433d6;hpb=015b6142ad6c3b496437d397416aacb776a42aed;p=m6w6%2Flibmemcached diff --git a/tests/libmemcached_world.h b/tests/libmemcached_world.h index 5fab96fe..8bc48a71 100644 --- a/tests/libmemcached_world.h +++ b/tests/libmemcached_world.h @@ -39,23 +39,11 @@ #pragma once -/* The structure we use for the test system */ -struct libmemcached_test_container_st -{ - libtest::server_startup_st& construct; - memcached_st *parent; - memcached_st *memc; - - libmemcached_test_container_st(libtest::server_startup_st &construct_arg) : - construct(construct_arg), - parent(NULL), - memc(NULL) - { } -}; +#include "tests/libmemcached_test_container.h" static void *world_create(libtest::server_startup_st& servers, test_return_t& error) { - if (HAVE_MEMCACHED_BINARY == 0) + if (libtest::has_memcached() == false) { error= TEST_SKIPPED; return NULL; @@ -99,98 +87,6 @@ static void *world_create(libtest::server_startup_st& servers, test_return_t& er return global_container; } -static test_return_t world_container_startup(libmemcached_test_container_st *container) -{ - char buffer[BUFSIZ]; - - test_compare_got(MEMCACHED_SUCCESS, - libmemcached_check_configuration(container->construct.option_string().c_str(), container->construct.option_string().size(), - buffer, sizeof(buffer)), - container->construct.option_string().c_str()); - - test_null(container->parent); - container->parent= memcached(container->construct.option_string().c_str(), container->construct.option_string().size()); - test_true(container->parent); - test_compare(MEMCACHED_SUCCESS, memcached_version(container->parent)); - - if (container->construct.sasl()) - { - if (memcached_failed(memcached_behavior_set(container->parent, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, 1))) - { - memcached_free(container->parent); - return TEST_FAILURE; - } - - if (memcached_failed(memcached_set_sasl_auth_data(container->parent, container->construct.username().c_str(), container->construct.password().c_str()))) - { - memcached_free(container->parent); - return TEST_FAILURE; - } - } - - return TEST_SUCCESS; -} - -static test_return_t world_container_shutdown(libmemcached_test_container_st *container) -{ - memcached_free(container->parent); - container->parent= NULL; - - return TEST_SUCCESS; -} - -static test_return_t world_test_startup(libmemcached_test_container_st *container) -{ - test_true(container); - test_null(container->memc); - test_true(container->parent); - container->memc= memcached_clone(NULL, container->parent); - test_true(container->memc); - - return TEST_SUCCESS; -} - -test_return_t world_flush(libmemcached_test_container_st *container); -test_return_t world_flush(libmemcached_test_container_st *container) -{ - test_true(container->memc); - memcached_flush(container->memc, 0); - memcached_quit(container->memc); - - return TEST_SUCCESS; -} - -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); - - test_compare(-1, instance->fd); - test_compare(0U, instance->cursor_active); - } - - return TEST_SUCCESS; -} - - -static test_return_t world_post_run(libmemcached_test_container_st *container) -{ - test_true(container->memc); - - return TEST_SUCCESS; -} - -static test_return_t world_on_error(test_return_t , libmemcached_test_container_st *container) -{ - test_true(container->memc); - memcached_free(container->memc); - container->memc= NULL; - - return TEST_SUCCESS; -} - static bool world_destroy(void *object) { libmemcached_test_container_st *container= (libmemcached_test_container_st *)object; @@ -208,67 +104,4 @@ static bool world_destroy(void *object) typedef test_return_t (*libmemcached_test_callback_fn)(memcached_st *); -class LibmemcachedRunner : public libtest::Runner { -public: - test_return_t run(test_callback_fn* func, void *object) - { - return _runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); - } - - test_return_t pre(test_callback_fn* func, void *object) - { - return _pre_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); - } - - test_return_t post(test_callback_fn* func, void *object) - { - return _post_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); - } - -private: - test_return_t _runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) - { - 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_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) - { - if (func) - { - return func(container->parent); - } - - return TEST_SUCCESS; - } - - test_return_t _post_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) - { - if (func) - { - return func(container->parent); - } - - return TEST_SUCCESS; - } -}; - -static LibmemcachedRunner defualt_libmemcached_runner; +#include "tests/runner.h"