X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=tests%2Flibmemcached-1.0%2Fmem_functions.cc;h=e39c2a8bc8eccc134e4a30462f04637092eb7da4;hb=9069819ac2940397e96210867e0666b801b97f60;hp=9140e72106ee967804ed86fe1cde8d177cd336dd;hpb=35b7e1ac4af1f81704affd6fa94cac09603fdb35;p=m6w6%2Flibmemcached diff --git a/tests/libmemcached-1.0/mem_functions.cc b/tests/libmemcached-1.0/mem_functions.cc index 9140e721..e39c2a8b 100644 --- a/tests/libmemcached-1.0/mem_functions.cc +++ b/tests/libmemcached-1.0/mem_functions.cc @@ -87,110 +87,7 @@ using namespace libtest; #define UUID_STRING_MAXLENGTH 36 -struct keys_st { -public: - keys_st(size_t arg) - { - init(arg, UUID_STRING_MAXLENGTH); - } - - keys_st(size_t arg, size_t padding) - { - init(arg, padding); - } - - void init(size_t arg, size_t padding) - { - _lengths.resize(arg); - _keys.resize(arg); - - for (size_t x= 0; x < _keys.size(); x++) - { - libtest::vchar_t key_buffer; - key_buffer.resize(padding +1); - memset(&key_buffer[0], 'x', padding); - - if (HAVE_LIBUUID) - { -#if defined(HAVE_LIBUUID) && HAVE_LIBUUID - uuid_t out; - uuid_generate(out); - - uuid_unparse(out, &key_buffer[0]); - _keys[x]= strdup(&key_buffer[0]); - (_keys[x])[UUID_STRING_MAXLENGTH]= 'x'; -#endif - } - else // We just use a number and pad the string if UUID is not available - { - char int_buffer[MEMCACHED_MAXIMUM_INTEGER_DISPLAY_LENGTH +1]; - int key_length= snprintf(int_buffer, sizeof(int_buffer), "%u", uint32_t(x)); - memcpy(&key_buffer[0], int_buffer, key_length); - _keys[x]= strdup(&key_buffer[0]); - } - _lengths[x]= padding; - } - } - - ~keys_st() - { - for (libtest::vchar_ptr_t::iterator iter= _keys.begin(); - iter != _keys.end(); - iter++) - { - ::free(*iter); - } - } - - libtest::vchar_ptr_t::iterator begin() - { - return _keys.begin(); - } - - libtest::vchar_ptr_t::iterator end() - { - return _keys.end(); - } - - size_t size() const - { - return _keys.size(); - } - - std::vector& lengths() - { - return _lengths; - } - - libtest::vchar_ptr_t& keys() - { - return _keys; - } - - size_t* lengths_ptr() - { - return &_lengths[0]; - } - - char** keys_ptr() - { - return &_keys[0]; - } - - char* key_at(size_t arg) - { - return _keys[arg]; - } - - size_t length_at(size_t arg) - { - return _lengths[arg]; - } - -private: - libtest::vchar_ptr_t _keys; - std::vector _lengths; -}; +#include "tests/keys.hpp" static memcached_st * create_single_instance_memcached(const memcached_st *original_memc, const char *options) { @@ -749,7 +646,12 @@ test_return_t memcached_mget_mixed_memcached_get_TEST(memcached_st *memc) memcached_return_t rc; char *out_value= memcached_get(memc, keys.key_at(which_key), keys.length_at(which_key), &value_length, &flags, &rc); - test_compare(MEMCACHED_SUCCESS, rc); + if (rc == MEMCACHED_NOTFOUND) + { } // It is possible that the value has been purged. + else + { + test_compare_hint(MEMCACHED_SUCCESS, rc, memcached_last_error_message(memc)); + } test_null(out_value); test_zero(value_length); test_zero(flags); @@ -1129,7 +1031,7 @@ static memcached_return_t read_through_trigger(memcached_st *memc, size_t key_length, memcached_result_st *result) { - (void)memc;(void)key;(void)key_length; + (void)memc;(void)key;(void)key_length; return memcached_result_set_value(result, READ_THROUGH_VALUE, strlen(READ_THROUGH_VALUE)); }