X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Frunner.h;h=fcce6e2f38bd099108801e383ccbbe574fd24ed6;hb=1be0350e7ae7a566896a9fe52863dcc22433fc8a;hp=82e69fda4016e1cd7ecaef85d1521796835fe7be;hpb=8853fb2dda92e1c9921893c42efd48bcd72afaf9;p=m6w6%2Flibmemcached diff --git a/tests/runner.h b/tests/runner.h index 82e69fda..fcce6e2f 100644 --- a/tests/runner.h +++ b/tests/runner.h @@ -38,6 +38,10 @@ #pragma once +#include "tests/libmemcached-1.0/generate.h" +#include "tests/memc.h" +#include "tests/print.h" + class LibmemcachedRunner : public libtest::Runner { public: test_return_t run(test_callback_fn* func, void *object) @@ -45,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); @@ -58,33 +76,68 @@ 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_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()); +#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; @@ -92,12 +145,17 @@ private: test_return_t _post_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) { + 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; } };