X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fplus.cpp;h=5078f1f5583cea9c07ab32f5524eec8c3b5ed13c;hb=3481bbb3f9e4f98c7b984b0f77ebeb468a7d486b;hp=90f7a0daaf58774c72d33547298d7a00aedf7b13;hpb=04b8554c3724eae57fbd75dc6b3e69dca8b58187;p=awesomized%2Flibmemcached diff --git a/tests/plus.cpp b/tests/plus.cpp index 90f7a0da..5078f1f5 100644 --- a/tests/plus.cpp +++ b/tests/plus.cpp @@ -40,7 +40,7 @@ /* C++ interface test */ -#include +#include #include #include @@ -59,18 +59,6 @@ using namespace std; using namespace memcache; using namespace libtest; -extern "C" { - test_return_t basic_test(memcached_st *memc); - test_return_t increment_test(memcached_st *memc); - test_return_t basic_master_key_test(memcached_st *memc); - test_return_t mget_result_function(memcached_st *memc); - test_return_t basic_behavior(memcached_st *memc); - test_return_t mget_test(memcached_st *memc); - memcached_return_t callback_counter(const memcached_st *, - memcached_result_st *, - void *context); -} - static void populate_vector(vector &vec, const string &str) { vec.reserve(str.length()); @@ -86,7 +74,7 @@ static void copy_vec_to_string(vector &vec, string &str) } } -test_return_t basic_test(memcached_st *memc) +static test_return_t basic_test(memcached_st *memc) { Memcache foo(memc); const string value_set("This is some data"); @@ -98,13 +86,14 @@ test_return_t basic_test(memcached_st *memc) test_true(foo.set("mine", value, 0, 0)); test_true(foo.get("mine", test_value)); + test_compare(test_value.size(), value.size()); test_memcmp(&test_value[0], &value[0], test_value.size()); test_false(foo.set("", value, 0, 0)); return TEST_SUCCESS; } -test_return_t increment_test(memcached_st *original) +static test_return_t increment_test(memcached_st *original) { Memcache mcach(original); const string key("blah"); @@ -128,18 +117,18 @@ test_return_t increment_test(memcached_st *original) test_compare(int_inc_value, int_ret_value); test_true(mcach.increment(key, 1, &int_ret_value)); - test_compare(2UL, int_ret_value); + test_compare(uint64_t(2), int_ret_value); test_true(mcach.increment(key, 1, &int_ret_value)); - test_compare(3UL, int_ret_value); + test_compare(uint64_t(3), int_ret_value); test_true(mcach.increment(key, 5, &int_ret_value)); - test_compare(8UL, int_ret_value); + test_compare(uint64_t(8), int_ret_value); return TEST_SUCCESS; } -test_return_t basic_master_key_test(memcached_st *original) +static test_return_t basic_master_key_test(memcached_st *original) { Memcache foo(original); const string value_set("Data for server A"); @@ -167,19 +156,7 @@ test_return_t basic_master_key_test(memcached_st *original) return TEST_SUCCESS; } -/* Count the results */ -memcached_return_t callback_counter(const memcached_st *, - memcached_result_st *, - void *context) -{ - unsigned int *counter= static_cast(context); - - *counter= *counter +1; - - return MEMCACHED_SUCCESS; -} - -test_return_t mget_test(memcached_st *original) +static test_return_t mget_test(memcached_st *original) { Memcache memc(original); memcached_return_t mc_rc; @@ -226,39 +203,86 @@ test_return_t mget_test(memcached_st *original) return TEST_SUCCESS; } -test_return_t basic_behavior(memcached_st *original) +static test_return_t basic_behavior(memcached_st *original) { Memcache memc(original); - uint64_t value= 1; - test_true(memc.setBehavior(MEMCACHED_BEHAVIOR_VERIFY_KEY, value)); - uint64_t behavior= memc.getBehavior(MEMCACHED_BEHAVIOR_VERIFY_KEY); - test_compare(behavior, value); + test_true(memc.setBehavior(MEMCACHED_BEHAVIOR_VERIFY_KEY, true)); + test_compare(true, memc.getBehavior(MEMCACHED_BEHAVIOR_VERIFY_KEY)); + + return TEST_SUCCESS; +} + +static test_return_t error_test(memcached_st *) +{ + Memcache memc("--server=localhost:178"); + std::vector value; + + test_false(memc.set("key", value, time_t(0), uint32_t(0))); + + test_true(memc.error()); + + return TEST_SUCCESS; +} + +static test_return_t error_std_string_test(memcached_st *) +{ + Memcache memc("--server=localhost:178"); + std::vector value; + + test_false(memc.set("key", value, time_t(0), uint32_t(0))); + + std::string error_message; + test_true(memc.error(error_message)); + test_false(error_message.empty()); return TEST_SUCCESS; } +static test_return_t error_memcached_return_t_test(memcached_st *) +{ + Memcache memc("--server=localhost:178"); + std::vector value; + + test_false(memc.set("key", value, time_t(0), uint32_t(0))); + + memcached_return_t rc; + test_true(memc.error(rc)); + test_compare(MEMCACHED_CONNECTION_FAILURE, rc); + + return TEST_SUCCESS; +} + +test_st error_tests[] ={ + { "error()", false, reinterpret_cast(error_test) }, + { "error(std::string&)", false, reinterpret_cast(error_std_string_test) }, + { "error(memcached_return_t&)", false, reinterpret_cast(error_memcached_return_t_test) }, + {0, 0, 0} +}; + test_st tests[] ={ - { "basic", 0, + { "basic", false, reinterpret_cast(basic_test) }, - { "basic_master_key", 0, + { "basic_master_key", false, reinterpret_cast(basic_master_key_test) }, - { "increment_test", 0, + { "increment_test", false, reinterpret_cast(increment_test) }, - { "mget", 1, + { "mget", true, reinterpret_cast(mget_test) }, - { "basic_behavior", 0, + { "basic_behavior", false, reinterpret_cast(basic_behavior) }, {0, 0, 0} }; collection_st collection[] ={ {"block", 0, 0, tests}, + {"error()", 0, 0, error_tests}, {0, 0, 0, 0} }; #define SERVERS_TO_CREATE 5 -#include "libmemcached_world.h" +#define TEST_PORT_BASE MEMCACHED_DEFAULT_PORT +10 +#include "tests/libmemcached_world.h" void get_world(Framework *world) {