X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Frunner.h;h=0d1a767dcfde56d44be320b67b4d4e024ccd7af7;hb=25efe3485198149616820ab4e52d2f18f0abe5a7;hp=deb685afd4c966d2a24b110896edd6e41bcd4b77;hpb=0792d5bdd0b2a352cce1a4cb084eca19b15acc56;p=m6w6%2Flibmemcached diff --git a/tests/runner.h b/tests/runner.h index deb685af..0d1a767d 100644 --- a/tests/runner.h +++ b/tests/runner.h @@ -39,6 +39,8 @@ #pragma once #include "tests/libmemcached-1.0/generate.h" +#include "tests/memc.h" +#include "tests/print.h" class LibmemcachedRunner : public libtest::Runner { public: @@ -47,6 +49,20 @@ public: return _runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); } + test_return_t flush(void* arg) + { + return flush((libmemcached_test_container_st*)arg); + } + + test_return_t flush(libmemcached_test_container_st *container) + { + Memc memc(container->parent()); + memcached_flush(&memc, 0); + memcached_quit(&memc); + + return TEST_SUCCESS; + } + test_return_t pre(test_callback_fn* func, void *object) { return _pre_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); @@ -60,35 +76,67 @@ public: private: test_return_t _runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) { + test_true(container); + test_true(container->parent()); + Memc memc(container->parent()); + test_compare(true, check()); + test_return_t ret= TEST_SUCCESS; if (func) { test_true(container); - test_true(container->memc); - test_return_t ret; try { - ret= func(container->memc); + ret= func(&memc); } catch (std::exception& e) { libtest::Error << e.what(); - return TEST_FAILURE; + ret= TEST_FAILURE; } - - return ret; } - return TEST_SUCCESS; + return ret; } test_return_t _pre_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) { + container->reset(); + { + char buffer[BUFSIZ]; + + test_compare(MEMCACHED_SUCCESS, + libmemcached_check_configuration(container->construct.option_string().c_str(), container->construct.option_string().size(), + buffer, sizeof(buffer))); + + test_null(container->parent()); + container->parent(memcached(container->construct.option_string().c_str(), container->construct.option_string().size())); + test_true(container->parent()); +#if 0 + test_compare(MEMCACHED_SUCCESS, memcached_version(container->parent())); +#endif + + if (container->construct.sasl()) + { + if (memcached_failed(memcached_behavior_set(container->parent(), MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, 1))) + { + container->reset(); + return TEST_FAILURE; + } + + if (memcached_failed(memcached_set_sasl_auth_data(container->parent(), container->construct.username().c_str(), container->construct.password().c_str()))) + { + container->reset(); + return TEST_FAILURE; + } + } + } + test_compare(true, check()); if (func) { - return func(container->parent); + return func(container->parent()); } return TEST_SUCCESS; @@ -99,12 +147,14 @@ private: test_compare(true, check()); cleanup_pairs(NULL); + test_return_t rc= TEST_SUCCESS; if (func) { - return func(container->parent); + rc= func(container->parent()); } + container->reset(); - return TEST_SUCCESS; + return rc; } };