From 1d3ffcb8031a12f06404a0700d556901b773c409 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Wed, 20 Jun 2012 01:35:52 -0400 Subject: [PATCH 01/16] Update RPM --- Makefile.am | 1 + rpm.am | 9 ++++++++- support/libmemcached.spec.in | 32 ++++++++++++++++++++++++++++++++ support/memcached.init | 0 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 support/memcached.init diff --git a/Makefile.am b/Makefile.am index b4338106..a977a2c5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -48,6 +48,7 @@ include libmemcachedprotocol/include.am include libmemcachedinternal/include.am include libmemcachedinternal/util/include.am include poll/include.am +include rpm.am include support/include.am include tests/include.am include util/include.am diff --git a/rpm.am b/rpm.am index 72763f8d..a658132a 100644 --- a/rpm.am +++ b/rpm.am @@ -25,7 +25,12 @@ rpm-sign: rpm-build @rpm --addsign *.rpm @rpm --checksig *.rpm -rpm: support/$(PACKAGE).spec man distcheck rpm-build +clean-rpm: + @rm -f *.tar.gz + @rm -f *.src.rpm + @rm -f *.rpm + +rpm: clean-rpm support/$(PACKAGE).spec man distcheck rpm-build release: rpm rpm-sign @@ -37,3 +42,5 @@ merge-clean: @echo "The follow files need to be removed or checked in:" @bzr unknowns +auto-rpmbuild: + @auto-br-rpmbuild -ba support/libmemcached.spec diff --git a/support/libmemcached.spec.in b/support/libmemcached.spec.in index b422ba67..1a1bd356 100644 --- a/support/libmemcached.spec.in +++ b/support/libmemcached.spec.in @@ -8,7 +8,39 @@ URL: http://launchpad.net/libmemcached Source0: http://download.tangent.org/libmemcached-%{version}.tar.gz # For test suite +BuildRequires: bash +BuildRequires: binutils +BuildRequires: ccache +BuildRequires: coreutils +BuildRequires: cpio +BuildRequires: cyrus-sasl-devel +BuildRequires: diffutils +BuildRequires: elfutils +BuildRequires: file +BuildRequires: findutils +BuildRequires: gawk +BuildRequires: gcc +BuildRequires: gdb +BuildRequires: glibc +BuildRequires: glibc-common +BuildRequires: glibc-devel +BuildRequires: glibc-headers +BuildRequires: grep +BuildRequires: gzip +BuildRequires: hostname +BuildRequires: libevent-devel +BuildRequires: libstdc++-devel +BuildRequires: libuuid-devel +BuildRequires: llvm-libs +BuildRequires: make BuildRequires: memcached +BuildRequires: mysql-libs +BuildRequires: pkgconfig +BuildRequires: protobuf-devel +BuildRequires: python-sphinx +BuildRequires: qt3 +BuildRequires: sed +BuildRequires: tar BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) diff --git a/support/memcached.init b/support/memcached.init new file mode 100644 index 00000000..e69de29b -- 2.30.2 From 299c04f7d92895d0ec5e1cce437d19b3334b75ac Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Thu, 21 Jun 2012 01:48:37 -0400 Subject: [PATCH 02/16] Fix exists. --- libmemcached-1.0/exist.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libmemcached-1.0/exist.h b/libmemcached-1.0/exist.h index 5c60105a..ef60a81a 100644 --- a/libmemcached-1.0/exist.h +++ b/libmemcached-1.0/exist.h @@ -36,6 +36,10 @@ #pragma once +#ifdef __cplusplus +extern "C" { +#endif + LIBMEMCACHED_API memcached_return_t memcached_exist(memcached_st *memc, const char *key, size_t key_length); @@ -43,3 +47,6 @@ LIBMEMCACHED_API memcached_return_t memcached_exist_by_key(memcached_st *memc, const char *group_key, size_t group_key_length, const char *key, size_t key_length); +#ifdef __cplusplus +} +#endif -- 2.30.2 From 0d34e2e86b16fcd4d459e684f56cb88296cea2a1 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Fri, 22 Jun 2012 16:27:31 -0700 Subject: [PATCH 03/16] Cleanup server. --- libmemcached-1.0/struct/server.h | 9 --------- libmemcached/server.cc | 7 ------- rpm.am | 8 -------- 3 files changed, 24 deletions(-) diff --git a/libmemcached-1.0/struct/server.h b/libmemcached-1.0/struct/server.h index d20b54a2..fe984d1c 100644 --- a/libmemcached-1.0/struct/server.h +++ b/libmemcached-1.0/struct/server.h @@ -72,7 +72,6 @@ struct memcached_server_st { uint32_t number_of_hosts; uint32_t cursor_active; in_port_t port; - memcached_socket_t fd; uint32_t io_bytes_sent; /* # bytes sent since last read */ uint32_t request_id; uint32_t server_failure_counter; @@ -90,17 +89,9 @@ struct memcached_server_st { uint8_t micro_version; // ditto, and note that this is the third, not second version bit uint8_t minor_version; // ditto memcached_connection_t type; - char *read_ptr; - size_t read_buffer_length; - size_t read_data_length; - size_t write_buffer_offset; - struct addrinfo *address_info; - struct addrinfo *address_info_next; time_t next_retry; struct memcached_st *root; uint64_t limit_maxbytes; struct memcached_error_t *error_messages; - char read_buffer[MEMCACHED_MAX_BUFFER]; - char write_buffer[MEMCACHED_MAX_BUFFER]; char hostname[MEMCACHED_NI_MAXHOST]; }; diff --git a/libmemcached/server.cc b/libmemcached/server.cc index 8d9e9bbd..a9d7c728 100644 --- a/libmemcached/server.cc +++ b/libmemcached/server.cc @@ -50,7 +50,6 @@ static inline void _server_init(memcached_server_st *self, memcached_st *root, self->number_of_hosts= 0; self->cursor_active= 0; self->port= port; - self->fd= INVALID_SOCKET; self->io_bytes_sent= 0; self->request_id= 0; self->server_failure_counter= 0; @@ -65,12 +64,6 @@ static inline void _server_init(memcached_server_st *self, memcached_st *root, self->minor_version= UINT8_MAX; self->type= type; self->error_messages= NULL; - self->read_ptr= self->read_buffer; - self->read_buffer_length= 0; - self->read_data_length= 0; - self->write_buffer_offset= 0; - self->address_info= NULL; - self->address_info_next= NULL; self->state= MEMCACHED_SERVER_STATE_NEW; self->next_retry= 0; diff --git a/rpm.am b/rpm.am index a658132a..9d7c5494 100644 --- a/rpm.am +++ b/rpm.am @@ -34,13 +34,5 @@ rpm: clean-rpm support/$(PACKAGE).spec man distcheck rpm-build release: rpm rpm-sign -merge-clean: - @find ./ | $(GREP) \.moved | xargs rm -r -f - @find ./ | $(GREP) \.orig | xargs rm -f - @find ./ | $(GREP) \.rej | xargs rm -f - @find ./ | $(GREP) \~$$ | xargs rm -f - @echo "The follow files need to be removed or checked in:" - @bzr unknowns - auto-rpmbuild: @auto-br-rpmbuild -ba support/libmemcached.spec -- 2.30.2 From 7d698ad128550cb4d2e3a60c83533c4370efd106 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Wed, 27 Jun 2012 17:18:07 -0700 Subject: [PATCH 04/16] Reverse decision on keeping an init file. --- rpm.am | 1 - support/memcached.init | 0 2 files changed, 1 deletion(-) delete mode 100644 support/memcached.init diff --git a/rpm.am b/rpm.am index 9d7c5494..59b8a922 100644 --- a/rpm.am +++ b/rpm.am @@ -13,7 +13,6 @@ rpm-build: support/$(PACKAGE).spec @mkdir -p ~/rpmbuild/SPECS/ @mkdir -p ~/rpmbuild/SRPMS/ @cp $(PACKAGE)-$(VERSION).tar.gz ~/rpmbuild/SOURCES/ - @cp support/$(PACKAGE).init ~/rpmbuild/SOURCES/ @rpmbuild -ba support/$(PACKAGE).spec @cp ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-$(VERSION)*.rpm . @cp ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-devel-$(VERSION)*.rpm . diff --git a/support/memcached.init b/support/memcached.init deleted file mode 100644 index e69de29b..00000000 -- 2.30.2 From ce7820c0f4f9918189618dd640dfa57ebc195060 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Wed, 27 Jun 2012 18:31:58 -0700 Subject: [PATCH 05/16] No server --- rpm.am | 1 - 1 file changed, 1 deletion(-) diff --git a/rpm.am b/rpm.am index 59b8a922..82a3ffd3 100644 --- a/rpm.am +++ b/rpm.am @@ -17,7 +17,6 @@ rpm-build: support/$(PACKAGE).spec @cp ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-$(VERSION)*.rpm . @cp ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-devel-$(VERSION)*.rpm . @cp ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-debuginfo-$(VERSION)*.rpm . - @cp ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-server-$(VERSION)*.rpm . @cp ~/rpmbuild/SRPMS/$(PACKAGE)-$(VERSION)*.rpm . rpm-sign: rpm-build -- 2.30.2 From 81e8f0486563e3bcf9e5bdb634af45c6767009cc Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Thu, 28 Jun 2012 23:34:38 -0700 Subject: [PATCH 06/16] Remove extra white space in get command. --- libmemcached/get.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libmemcached/get.cc b/libmemcached/get.cc index 88220e6b..cc6af2d8 100644 --- a/libmemcached/get.cc +++ b/libmemcached/get.cc @@ -202,8 +202,8 @@ static memcached_return_t memcached_mget_by_key_real(memcached_st *ptr, bool mget_mode) { bool failures_occured_in_sending= false; - const char *get_command= "get "; - uint8_t get_command_length= 4; + const char *get_command= "get"; + uint8_t get_command_length= 3; unsigned int master_server_key= (unsigned int)-1; /* 0 is a valid server id! */ memcached_return_t rc; @@ -270,8 +270,8 @@ static memcached_return_t memcached_mget_by_key_real(memcached_st *ptr, if (ptr->flags.support_cas) { - get_command= "gets "; - get_command_length= 5; + get_command= "gets"; + get_command_length= 4; } /* @@ -299,9 +299,9 @@ static memcached_return_t memcached_mget_by_key_real(memcached_st *ptr, libmemcached_io_vector_st vector[]= { { get_command, get_command_length }, + { memcached_literal_param(" ") }, { memcached_array_string(ptr->_namespace), memcached_array_size(ptr->_namespace) }, - { keys[x], key_length[x] }, - { memcached_literal_param(" ") } + { keys[x], key_length[x] } }; -- 2.30.2 From edbdb9c55b66d2cc1befe6e589c2bfc98ea2d7fb Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Fri, 29 Jun 2012 20:12:06 -0700 Subject: [PATCH 07/16] Set SASL errors correctly. --- libmemcached/sasl.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libmemcached/sasl.cc b/libmemcached/sasl.cc index 3d93b786..cb609257 100644 --- a/libmemcached/sasl.cc +++ b/libmemcached/sasl.cc @@ -74,12 +74,12 @@ static memcached_return_t resolve_names(memcached_instance_st& server, char *lad if (getsockname(server.fd, (struct sockaddr *)&saddr, &salen) < 0) { - return memcached_set_errno(server, MEMCACHED_ERRNO, MEMCACHED_AT); + return memcached_set_error(server, MEMCACHED_HOST_LOOKUP_FAILURE, MEMCACHED_AT); } if (getnameinfo((struct sockaddr *)&saddr, salen, host, sizeof(host), port, sizeof(port), NI_NUMERICHOST | NI_NUMERICSERV) < 0) { - return MEMCACHED_HOST_LOOKUP_FAILURE; + return memcached_set_error(server, MEMCACHED_HOST_LOOKUP_FAILURE, MEMCACHED_AT); } (void)snprintf(laddr, laddr_length, "%s;%s", host, port); @@ -87,7 +87,7 @@ static memcached_return_t resolve_names(memcached_instance_st& server, char *lad if (getpeername(server.fd, (struct sockaddr *)&saddr, &salen) < 0) { - return memcached_set_errno(server, MEMCACHED_ERRNO, MEMCACHED_AT); + return memcached_set_error(server, MEMCACHED_HOST_LOOKUP_FAILURE, MEMCACHED_AT); } if (getnameinfo((struct sockaddr *)&saddr, salen, host, sizeof(host), -- 2.30.2 From 633c18d8302c3f0fda715879716a1a6cb2e21080 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Fri, 29 Jun 2012 21:32:44 -0700 Subject: [PATCH 08/16] Fix cppcheck warnings. --- example/memcached_light.cc | 3 +- libmemcached/allocators.cc | 4 +-- libmemcached/array.c | 60 +++++++++++++++++++------------------- libmemcached/error.cc | 13 ++------- 4 files changed, 36 insertions(+), 44 deletions(-) diff --git a/example/memcached_light.cc b/example/memcached_light.cc index c92e5ea2..7a29db26 100644 --- a/example/memcached_light.cc +++ b/example/memcached_light.cc @@ -77,7 +77,8 @@ struct options_st { options_st() : service("9999"), - is_verbose(false) + is_verbose(false), + opt_daemon(false) { } }; diff --git a/libmemcached/allocators.cc b/libmemcached/allocators.cc index aaa66dba..e1c9d780 100644 --- a/libmemcached/allocators.cc +++ b/libmemcached/allocators.cc @@ -59,8 +59,8 @@ void *_libmemcached_calloc(const memcached_st *self, size_t nelem, size_t size, { if (self->allocators.malloc != _libmemcached_malloc) { - void *ret = _libmemcached_malloc(self, nelem * size, context); - if (ret == NULL) + void *ret= _libmemcached_malloc(self, nelem * size, context); + if (ret) { memset(ret, 0, nelem * size); } diff --git a/libmemcached/array.c b/libmemcached/array.c index 5096b187..5f9066ce 100644 --- a/libmemcached/array.c +++ b/libmemcached/array.c @@ -49,10 +49,12 @@ struct memcached_array_st memcached_array_st *memcached_array_clone(struct memcached_st *memc, const memcached_array_st *original) { - if (not original) - return NULL; + if (original) + { + return memcached_strcpy(memc, original->c_str, original->size); + } - return memcached_strcpy(memc, original->c_str, original->size); + return NULL; } memcached_array_st *memcached_strcpy(struct memcached_st *memc, const char *str, size_t str_length) @@ -63,29 +65,23 @@ memcached_array_st *memcached_strcpy(struct memcached_st *memc, const char *str, memcached_array_st *array= (struct memcached_array_st *)libmemcached_malloc(memc, sizeof(struct memcached_array_st) +str_length +1); - if (not array) - return NULL; - - array->root= memc; - array->size= str_length; // We don't count the NULL ending - memcpy(array->c_str, str, str_length); - array->c_str[str_length]= 0; + if (array) + { + array->root= memc; + array->size= str_length; // We don't count the NULL ending + memcpy(array->c_str, str, str_length); + array->c_str[str_length]= 0; + } return array; } bool memcached_array_is_null(memcached_array_st *array) { - assert(array); - assert(array->root); - - if (not array) + if (array) + { return false; - - if (array->size and array->c_str) - return false; - - assert(not array->size and not array->c_str); + } return true; } @@ -104,25 +100,29 @@ memcached_string_t memcached_array_to_string(memcached_array_st *array) void memcached_array_free(memcached_array_st *array) { - if (not array) - return; - - WATCHPOINT_ASSERT(array->root); - libmemcached_free(array->root, array); + if (array) + { + WATCHPOINT_ASSERT(array->root); + libmemcached_free(array->root, array); + } } size_t memcached_array_size(memcached_array_st *array) { - if (not array) - return 0; + if (array) + { + return array->size; + } - return array->size; + return 0; } const char *memcached_array_string(memcached_array_st *array) { - if (not array) - return NULL; + if (array) + { + return array->c_str; + } - return array->c_str; + return NULL; } diff --git a/libmemcached/error.cc b/libmemcached/error.cc index 587e1c8a..62616b30 100644 --- a/libmemcached/error.cc +++ b/libmemcached/error.cc @@ -464,19 +464,10 @@ void memcached_error_print(const memcached_st *self) static void _error_free(memcached_error_t *error) { - if (not error) + if (error) { - return; - } + _error_free(error->next); - _error_free(error->next); - - if (error and error->root) - { - libmemcached_free(error->root, error); - } - else if (error) - { libmemcached_free(error->root, error); } } -- 2.30.2 From fbdf9f2089a2653c8ea8150af22852ebc61ce42d Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sat, 30 Jun 2012 09:30:23 -0700 Subject: [PATCH 09/16] Update util and fix a few cppcheck warnings. --- tests/libmemcached-1.0/haldenbrand.cc | 4 ++-- tests/libmemcached-1.0/mem_functions.cc | 4 +--- tests/libmemcached-1.0/pool.cc | 2 ++ util/instance.cc | 2 -- util/logfile.cc | 1 + util/pidfile.cc | 7 ++++++- util/signal.cc | 21 ++++++++++++++++++++- util/signal.hpp | 18 +++++++++++++++++- 8 files changed, 49 insertions(+), 10 deletions(-) diff --git a/tests/libmemcached-1.0/haldenbrand.cc b/tests/libmemcached-1.0/haldenbrand.cc index cbbe88dd..a48b346a 100644 --- a/tests/libmemcached-1.0/haldenbrand.cc +++ b/tests/libmemcached-1.0/haldenbrand.cc @@ -92,13 +92,13 @@ test_return_t haldenbrand_TEST2(memcached_st *memc) test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_TCP_NODELAY, true)); -#ifdef NOT_YET +#if 0 test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE, 20 * 1024576)); test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE, 20 * 1024576)); getter = memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE); getter = memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE); - for (x= 0, errors= 0; total < 20 * 1024576 ; x++) + for (x= 0, errors= 0; total < 20 * 1024576 ; x++); #endif size_t total_value_length= 0; diff --git a/tests/libmemcached-1.0/mem_functions.cc b/tests/libmemcached-1.0/mem_functions.cc index bfacffea..9750d44d 100644 --- a/tests/libmemcached-1.0/mem_functions.cc +++ b/tests/libmemcached-1.0/mem_functions.cc @@ -3109,11 +3109,9 @@ test_return_t enable_consistent_hsieh(memcached_st *memc) test_return_t enable_cas(memcached_st *memc) { - unsigned int set= 1; - if (libmemcached_util_version_check(memc, 1, 2, 4)) { - memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SUPPORT_CAS, set); + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SUPPORT_CAS, true); return TEST_SUCCESS; } diff --git a/tests/libmemcached-1.0/pool.cc b/tests/libmemcached-1.0/pool.cc index ea6501e8..6156ecad 100644 --- a/tests/libmemcached-1.0/pool.cc +++ b/tests/libmemcached-1.0/pool.cc @@ -495,6 +495,8 @@ test_return_t regression_bug_962815(memcached_st *memc) { Error << "poll() failed with:" << strerror(errno); } + test_zero(active_fd); + set_running(false); } diff --git a/util/instance.cc b/util/instance.cc index e96f414f..8b9f5ee9 100644 --- a/util/instance.cc +++ b/util/instance.cc @@ -211,7 +211,6 @@ bool Instance::run() case READING: if (operation->has_response()) { - size_t total_read; ssize_t read_length; do @@ -240,7 +239,6 @@ bool Instance::run() } operation->push(buffer, static_cast(read_length)); - total_read+= static_cast(read_length); } while (more_to_read()); } // end has_response diff --git a/util/logfile.cc b/util/logfile.cc index c63077c1..29023b6f 100644 --- a/util/logfile.cc +++ b/util/logfile.cc @@ -49,6 +49,7 @@ #include #include #include +#include namespace datadifferential { namespace util { diff --git a/util/pidfile.cc b/util/pidfile.cc index 11f7f398..c6c5b440 100644 --- a/util/pidfile.cc +++ b/util/pidfile.cc @@ -118,8 +118,13 @@ bool Pidfile::create() } } + int oflags= O_CREAT|O_WRONLY|O_TRUNC; +#ifdef HAVE_O_CLOEXEC + oflags= oflags | O_CLOEXEC; +#endif + int file; - if ((file = open(_filename.c_str(), O_CREAT|O_WRONLY|O_TRUNC, S_IRWXU|S_IRGRP|S_IROTH)) < 0) + if ((file = open(_filename.c_str(), oflags, S_IRWXU|S_IRGRP|S_IROTH)) < 0) { std::stringstream error_stream; error_stream << "Could not open pid file for writing: " << _filename << "(" << strerror(errno) << ")"; diff --git a/util/signal.cc b/util/signal.cc index c28a4bc4..6eda5645 100644 --- a/util/signal.cc +++ b/util/signal.cc @@ -101,6 +101,19 @@ void SignalThread::test() assert(sigismember(&set, SIGUSR2)); } +void SignalThread::sighup(signal_callback_fn* arg) +{ + _sighup= arg; +} + +void SignalThread::sighup() +{ + if (_sighup) + { + _sighup(); + } +} + SignalThread::~SignalThread() { if (not is_shutdown()) @@ -142,6 +155,10 @@ static void *sig_thread(void *arg) case SIGUSR2: break; + case SIGHUP: + context->sighup(); + break; + case SIGABRT: case SIGINT: case SIGQUIT: @@ -172,7 +189,9 @@ static void *sig_thread(void *arg) SignalThread::SignalThread(bool exit_on_signal_arg) : _exit_on_signal(exit_on_signal_arg), magic_memory(MAGIC_MEMORY), - thread(pthread_self()) + __shutdown(SHUTDOWN_RUNNING), + thread(pthread_self()), + _sighup(NULL) { pthread_mutex_init(&shutdown_mutex, NULL); sigemptyset(&set); diff --git a/util/signal.hpp b/util/signal.hpp index e082d7d2..fab67be6 100644 --- a/util/signal.hpp +++ b/util/signal.hpp @@ -43,6 +43,16 @@ #include #endif +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (signal_callback_fn)(); + +#ifdef __cplusplus +} +#endif + namespace datadifferential { namespace util { @@ -59,7 +69,6 @@ class SignalThread { uint64_t magic_memory; volatile shutdown_t __shutdown; pthread_mutex_t shutdown_mutex; - pthread_t thread; public: @@ -84,6 +93,13 @@ public: void set_shutdown(shutdown_t arg); bool is_shutdown(); shutdown_t get_shutdown(); + + void sighup(); + void sighup(signal_callback_fn* arg); + +private: + pthread_t thread; + signal_callback_fn* _sighup; }; } /* namespace util */ -- 2.30.2 From f6a25ad2e38d85584d0d55b491d63338cb1e73cf Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sat, 30 Jun 2012 09:47:49 -0700 Subject: [PATCH 10/16] First pass in merging libtest --- libtest/dns.cc | 97 ++++++++++++++++++++++++++++++++++++++++++++++ libtest/dns.hpp | 44 +++++++++++++++++++++ libtest/include.am | 2 + 3 files changed, 143 insertions(+) create mode 100644 libtest/dns.cc create mode 100644 libtest/dns.hpp diff --git a/libtest/dns.cc b/libtest/dns.cc new file mode 100644 index 00000000..2bf094cb --- /dev/null +++ b/libtest/dns.cc @@ -0,0 +1,97 @@ +/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: + * + * Data Differential YATL (i.e. libtest) library + * + * Copyright (C) 2012 Data Differential, http://datadifferential.com/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * The names of its contributors may not be used to endorse or + * promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include + +#include +#include +#include + +namespace libtest { + +bool lookup(const char* host) +{ + assert(host); + bool success= false; + struct addrinfo *addrinfo= NULL; + + int limit= 5; + while (limit--) + { + int ret; + if ((ret= getaddrinfo(host, NULL, NULL, &(addrinfo)))) + { + switch (ret) + { + case EAI_AGAIN: + continue; + + case EAI_NONAME: + default: + break; + } + } + else + { + success= true; + break; + } + } + + freeaddrinfo(addrinfo); + + return success; +} + + +bool check_dns() +{ + if (lookup("exist.gearman.info") == false) + { + return false; + } + + if (lookup("does_not_exist.gearman.info")) // This should fail, if it passes,... + { + return false; + } + + return true; +} + +} // namespace libtest + diff --git a/libtest/dns.hpp b/libtest/dns.hpp new file mode 100644 index 00000000..438a922c --- /dev/null +++ b/libtest/dns.hpp @@ -0,0 +1,44 @@ +/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: + * + * Data Differential YATL (i.e. libtest) library + * + * Copyright (C) 2012 Data Differential, http://datadifferential.com/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * The names of its contributors may not be used to endorse or + * promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#pragma once + +namespace libtest { + +bool check_dns(); +bool lookup(const char*); + +} // namespace libtest diff --git a/libtest/include.am b/libtest/include.am index 157537b4..7f6b6a3f 100644 --- a/libtest/include.am +++ b/libtest/include.am @@ -50,6 +50,7 @@ noinst_HEADERS+= libtest/binaries.h noinst_HEADERS+= libtest/cpu.hpp noinst_HEADERS+= libtest/blobslap_worker.h noinst_HEADERS+= libtest/callbacks.h +noinst_HEADERS+= libtest/dns.hpp noinst_HEADERS+= libtest/cmdline.h noinst_HEADERS+= libtest/collection.h noinst_HEADERS+= libtest/common.h @@ -97,6 +98,7 @@ libtest_libtest_la_LIBADD= libtest_libtest_la_SOURCES= libtest_libtest_la_SOURCES+= libtest/binaries.cc +libtest_libtest_la_SOURCES+= libtest/dns.cc libtest_libtest_la_SOURCES+= libtest/cmdline.cc libtest_libtest_la_SOURCES+= libtest/comparison.cc libtest_libtest_la_SOURCES+= libtest/collection.cc -- 2.30.2 From b341b2b8f8b566641704161f9cc9c28f2d77a358 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sat, 30 Jun 2012 09:48:44 -0700 Subject: [PATCH 11/16] Adding patch rule to bzrignore --- .bzrignore | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.bzrignore b/.bzrignore index 2ce25562..6e70eae1 100644 --- a/.bzrignore +++ b/.bzrignore @@ -21,6 +21,7 @@ */Makefile */Makefile.in *TAGS +*patch .deps .hg/ .hgignore @@ -73,6 +74,7 @@ docs/html/ docs/linkcheck/ docs/text example/memcached_light +example/t/memcached_light libhashkit-1.0/configure.h libmemcached-1.0/configure.h libmemcached-1.0/t/c_sasl_test @@ -87,6 +89,7 @@ libmemcached/generated_probes.h libmemcached/memcached_configure.h libtest/.hg/ libtest/.hgignore +libtest/abort libtest/skiptest libtest/unittest libtest/version.h @@ -98,6 +101,10 @@ m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4 +memcached/.git +memcached/.gitignore +memcached/memcached +memcached/memcached.spec out patch patch2 @@ -119,6 +126,7 @@ tests/internals tests/libmemcached-1.0/internals tests/libmemcached-1.0/sasl tests/libmemcached-1.0/testapp +tests/libmemcached-1.0/testsocket tests/memcapable tests/memcat tests/memcp @@ -132,6 +140,7 @@ tests/memslap tests/memstat tests/memtouch tests/output.cmp +tests/parser tests/sasl tests/startservers tests/testapp @@ -141,11 +150,3 @@ tests/testudp tests/var/ tmp_chroot unittests/unittests -tests/libmemcached-1.0/testsocket -example/t/memcached_light -libtest/abort -memcached/.git -memcached/.gitignore -memcached/memcached -memcached/memcached.spec -tests/parser -- 2.30.2 From 9ba1b97bd2990ff7d8a83c03efc5e73c0e4d6e8a Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sat, 30 Jun 2012 09:55:09 -0700 Subject: [PATCH 12/16] Update unittest --- libtest/memcached.hpp.moved | 70 ------------------------------------- libtest/unittest.cc | 41 +++++++++++++++++++--- 2 files changed, 36 insertions(+), 75 deletions(-) delete mode 100644 libtest/memcached.hpp.moved diff --git a/libtest/memcached.hpp.moved b/libtest/memcached.hpp.moved deleted file mode 100644 index c4953975..00000000 --- a/libtest/memcached.hpp.moved +++ /dev/null @@ -1,70 +0,0 @@ -/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: - * - * Data Differential YATL (i.e. libtest) library - * - * Copyright (C) 2012 Data Differential, http://datadifferential.com/ - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * - * * The names of its contributors may not be used to endorse or - * promote products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#pragma once - -#if defined(HAVE_LIBMEMCACHED) && HAVE_LIBMEMCACHED -inline bool operator== (const memcached_st& memc, const memcached_return_t rc) -{ - if (memcached_last_error(&memc) == rc) - { - return true; - } - - return false; -} - -inline bool operator!= (const memcached_st& memc, const memcached_return_t rc) -{ - if (memcached_last_error(&memc) != rc) - { - return true; - } - - return false; -} - -inline bool operator!= (const memcached_return_t rc, const memcached_st& memc) -{ - if (memcached_last_error(&memc) != rc) - { - return true; - } - - return false; -} -#endif - diff --git a/libtest/unittest.cc b/libtest/unittest.cc index 56df76ba..ff73aa40 100644 --- a/libtest/unittest.cc +++ b/libtest/unittest.cc @@ -178,8 +178,7 @@ static test_return_t var_tmp_test(void *) { FILE *file= fopen("var/tmp/junk", "w+"); char buffer[1024]; - const char *dir= getcwd(buffer, sizeof(buffer)); - test_true_got(file, dir); + test_true(file); fclose(file); return TEST_SUCCESS; } @@ -696,7 +695,7 @@ static test_return_t gdb_abort_services_appliction_TEST(void *) static test_return_t get_free_port_TEST(void *) { in_port_t ret_port; - test_true_hint((ret_port= get_free_port()), ret_port); + test_true((ret_port= get_free_port())); test_true(get_free_port() != default_port()); test_true(get_free_port() != get_free_port()); @@ -720,6 +719,30 @@ static test_return_t number_of_cpus_TEST(void *) return TEST_SUCCESS; } +static test_return_t check_dns_TEST(void *) +{ + test_warn(libtest::check_dns(), "Broken DNS server/no DNS server found"); + + return TEST_SUCCESS; +} + +static test_return_t lookup_true_TEST(void *) +{ + test_warn(libtest::lookup("exist.gearman.info"), "dns is not currently working"); + return TEST_SUCCESS; +} + +static test_return_t lookup_false_TEST(void *) +{ + if (libtest::lookup("does_not_exist.gearman.info")) + { + Error << "Broken DNS server detected"; + return TEST_SKIPPED; + } + + return TEST_SUCCESS; +} + static test_return_t create_tmpfile_TEST(void *) { std::string tmp= create_tmpfile(__func__); @@ -731,8 +754,8 @@ static test_return_t create_tmpfile_TEST(void *) test_compare(Application::SUCCESS, touch_app.run(args)); test_compare(Application::SUCCESS, touch_app.wait(false)); - test_compare_hint(0, access(tmp.c_str(), R_OK), strerror(errno)); - test_compare_hint(0, unlink(tmp.c_str()), strerror(errno)); + test_compare(0, access(tmp.c_str(), R_OK)); + test_compare(0, unlink(tmp.c_str())); return TEST_SUCCESS; } @@ -885,6 +908,13 @@ test_st create_tmpfile_TESTS[] ={ {0, 0, 0} }; +test_st dns_TESTS[] ={ + {"libtest::lookup(true)", 0, lookup_true_TEST }, + {"libtest::lookup(false)", 0, lookup_false_TEST }, + {"libtest::check_dns()", 0, check_dns_TEST }, + {0, 0, 0} +}; + test_st application_tests[] ={ {"vchar_t", 0, vchar_t_TEST }, {"vchar_t compare()", 0, vchar_t_compare_neg_TEST }, @@ -943,6 +973,7 @@ collection_st collection[] ={ {"fatal", disable_fatal_exception, enable_fatal_exception, fatal_message_TESTS }, {"number_of_cpus()", 0, 0, number_of_cpus_TESTS }, {"create_tmpfile()", 0, 0, create_tmpfile_TESTS }, + {"dns", 0, 0, dns_TESTS }, {0, 0, 0, 0} }; -- 2.30.2 From 3cb9664414f4f5ace8dad227f5714ea412368126 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sat, 30 Jun 2012 10:02:43 -0700 Subject: [PATCH 13/16] Update libtest --- libtest/cmdline.cc | 15 +++++++-------- libtest/vchar.cc | 1 + 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libtest/cmdline.cc b/libtest/cmdline.cc index ecce3299..1233f514 100644 --- a/libtest/cmdline.cc +++ b/libtest/cmdline.cc @@ -84,7 +84,7 @@ namespace { { std::stringstream arg_buffer; - for (size_t x= 0; x < argc; x++) + for (size_t x= 0; x < argc; ++x) { arg_buffer << built_argv[x] << " "; } @@ -96,7 +96,7 @@ namespace { { std::stringstream arg_buffer; - for (char** ptr= argv; *ptr; ptr++) + for (char** ptr= argv; *ptr; ++ptr) { arg_buffer << *ptr << " "; } @@ -526,7 +526,7 @@ bool Application::Pipe::read(libtest::vchar_t& arg) data_was_read= true; arg.reserve(read_length +1); - for (size_t x= 0; x < read_length; x++) + for (size_t x= 0; x < read_length; ++x) { arg.push_back(buffer[x]); } @@ -628,7 +628,6 @@ void Application::Pipe::close(const close_t& arg) if (_open[type]) { - int ret; if (::close(_pipe_fd[type]) == -1) { Error << "close(" << strerror(errno) << ")"; @@ -669,7 +668,7 @@ void Application::create_argv(const char *args[]) _argc+= 1; } - for (Options::const_iterator iter= _options.begin(); iter != _options.end(); iter++) + for (Options::const_iterator iter= _options.begin(); iter != _options.end(); ++iter) { _argc++; if ((*iter).second.empty() == false) @@ -771,9 +770,9 @@ std::string Application::arguments() { std::stringstream arg_buffer; - for (size_t x= 1 + _use_libtool ? 2 : 0; + for (size_t x= (1 +_use_libtool) ? 2 : 0; x < _argc and built_argv[x]; - x++) + ++x) { arg_buffer << built_argv[x] << " "; } @@ -785,7 +784,7 @@ void Application::delete_argv() { if (built_argv) { - for (size_t x= 0; x < _argc; x++) + for (size_t x= 0; x < _argc; ++x) { if (built_argv[x]) { diff --git a/libtest/vchar.cc b/libtest/vchar.cc index fde0127f..24238060 100644 --- a/libtest/vchar.cc +++ b/libtest/vchar.cc @@ -81,6 +81,7 @@ void make(libtest::vchar_t& arg) void make(libtest::vchar_t& arg, size_t length) { + arg.reserve(length); for (uint32_t x= 0; x < length; x++) { arg.push_back(char(x % 127)); -- 2.30.2 From 72d630c2835020db3027fe7b185ad25e8a98aabc Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sat, 30 Jun 2012 11:23:01 -0700 Subject: [PATCH 14/16] Update for DNS updates from libtest --- libtest/common.h | 1 + libtest/unittest.cc | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libtest/common.h b/libtest/common.h index 777d21c3..498baf34 100644 --- a/libtest/common.h +++ b/libtest/common.h @@ -77,4 +77,5 @@ #include #include #include +#include diff --git a/libtest/unittest.cc b/libtest/unittest.cc index ff73aa40..11f78071 100644 --- a/libtest/unittest.cc +++ b/libtest/unittest.cc @@ -721,14 +721,14 @@ static test_return_t number_of_cpus_TEST(void *) static test_return_t check_dns_TEST(void *) { - test_warn(libtest::check_dns(), "Broken DNS server/no DNS server found"); + test_warn_hint(libtest::check_dns(), "Broken DNS server/no DNS server found"); return TEST_SUCCESS; } static test_return_t lookup_true_TEST(void *) { - test_warn(libtest::lookup("exist.gearman.info"), "dns is not currently working"); + test_warn_hint(libtest::lookup("exist.gearman.info"), "dns is not currently working"); return TEST_SUCCESS; } -- 2.30.2 From 25efe3485198149616820ab4e52d2f18f0abe5a7 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sun, 1 Jul 2012 22:14:52 -0700 Subject: [PATCH 15/16] Import/Merge of libtest latest. --- Makefile.am | 2 +- configure.ac | 1 - libtest/collection.cc | 3 +- libtest/comparison.hpp | 44 +++---- libtest/fatal.cc | 4 +- libtest/framework.cc | 19 ++- libtest/gearmand.cc | 2 - libtest/has.cc | 6 +- libtest/m4/ax_lib_mysql.m4 | 147 ++++++++++++++++++++++ libtest/m4/ax_prog_memcached.m4 | 59 +++++++++ libtest/m4/ax_prog_mysqld.m4 | 58 +++++++++ {m4 => libtest/m4}/memcached.m4 | 1 + libtest/m4/mysql.m4 | 20 +++ libtest/main.cc | 16 ++- libtest/port.cc | 12 +- libtest/runner.cc | 3 +- libtest/server.cc | 89 +++++++------ libtest/server.h | 4 +- libtest/server_container.cc | 46 ++++--- libtest/server_container.h | 4 +- libtest/test.h | 66 ++-------- libtest/unittest.cc | 63 +++++----- libtest/yatl.m4 | 3 + tests/failure.cc | 16 ++- tests/hash_plus.cc | 4 +- tests/libmemcached-1.0/debug.cc | 4 +- tests/libmemcached-1.0/dump.cc | 21 ++-- tests/libmemcached-1.0/encoding_key.cc | 45 +++---- tests/libmemcached-1.0/exist.cc | 16 +-- tests/libmemcached-1.0/generate.cc | 24 ++-- tests/libmemcached-1.0/mem_functions.cc | 34 +++-- tests/libmemcached-1.0/memcached_get.cc | 30 +++-- tests/libmemcached-1.0/pool.cc | 9 +- tests/libmemcached-1.0/stat.cc | 21 ++-- tests/libmemcached-1.0/touch.cc | 2 +- tests/libmemcached-1.0/virtual_buckets.cc | 2 +- tests/runner.h | 7 +- 37 files changed, 586 insertions(+), 321 deletions(-) create mode 100644 libtest/m4/ax_lib_mysql.m4 create mode 100644 libtest/m4/ax_prog_memcached.m4 create mode 100644 libtest/m4/ax_prog_mysqld.m4 rename {m4 => libtest/m4}/memcached.m4 (97%) create mode 100644 libtest/m4/mysql.m4 diff --git a/Makefile.am b/Makefile.am index a977a2c5..fa4bf726 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ # vim:ft=automake -ACLOCAL_AMFLAGS = -I m4 +ACLOCAL_AMFLAGS = -I m4 -I libtest/m4 # includes append to these: SUFFIXES = diff --git a/configure.ac b/configure.ac index 9b54afb4..f15cfc8e 100644 --- a/configure.ac +++ b/configure.ac @@ -66,7 +66,6 @@ AX_CXX_HEADER_STDCXX_98 # Adding support for libtest m4_include([libtest/yatl.m4]) -m4_include([m4/memcached.m4]) m4_include([m4/memcached_sasl.m4]) m4_include([m4/gearmand.m4]) m4_include([m4/libgearman.m4]) diff --git a/libtest/collection.cc b/libtest/collection.cc index 1de74ade..3f85d0fe 100644 --- a/libtest/collection.cc +++ b/libtest/collection.cc @@ -120,8 +120,7 @@ test_return_t Collection::exec() } catch (libtest::fatal &e) { - Error << "Fatal exception was thrown: " << e.what(); - stream::cerr(__FILE__, __LINE__, __func__) << e.what(); + stream::cerr(e.file(), e.line(), e.func()) << e.what(); _failed++; throw; } diff --git a/libtest/comparison.hpp b/libtest/comparison.hpp index aecf05f0..32dc22fa 100644 --- a/libtest/comparison.hpp +++ b/libtest/comparison.hpp @@ -59,12 +59,12 @@ bool valgrind_is_caller(void); LIBTEST_API bool _in_valgrind(const char *file, int line, const char *func); -template -bool _compare_truth_hint(const char *file, int line, const char *func, T_comparable __expected, const char *assertation_label, T_hint __hint) +template +bool _compare_truth(const char *file, int line, const char *func, T_comparable __expected, const char *assertation_label) { if (__expected == false) { - libtest::stream::make_cerr(file, line, func) << "Assertation \"" << assertation_label << "\" failed, hint: " << __hint; + libtest::stream::make_cerr(file, line, func) << "Assertation \"" << assertation_label << "\""; return false; } @@ -122,26 +122,14 @@ bool _compare_zero(const char *file, int line, const char *func, T_comparable __ return true; } -template -bool _truth(const char *file, int line, const char *func, T_comparable __truth) -{ - if (bool(__truth)) - { - libtest::stream::make_cerr(file, line, func) << "Assertion failed for " << func << "() with \"" << __truth << "\""; - return false; - } - - return true; -} - -template -bool _compare_hint(const char *file, int line, const char *func, T1_comparable __expected, T2_comparable __actual, T_hint __hint, bool io_error= true) +template +bool _ne_compare(const char *file, int line, const char *func, T1_comparable __expected, T2_comparable __actual, bool io_error= true) { - if (__expected != __actual) + if (__expected == __actual) { if (io_error) { - libtest::stream::make_cerr(file, line, func) << "Expected \"" << __expected << "\" got \"" << __actual << "\"" << " Additionally: \"" << __hint << "\""; + libtest::stream::make_cerr(file, line, func) << "Expected \"" << __expected << "\" got \"" << __actual << "\""; } return false; @@ -150,20 +138,20 @@ bool _compare_hint(const char *file, int line, const char *func, T1_comparable _ return true; } -template -bool _ne_compare_hint(const char *file, int line, const char *func, T1_comparable __expected, T2_comparable __actual, T_hint __hint, bool io_error= true) +template +bool _assert_truth(const char *file, int line, const char *func, T_comparable __truth, T_expression_string __expression, const char* __explain= NULL) { - if (__expected == __actual) + if (__truth) { - if (io_error) - { - libtest::stream::make_cerr(file, line, func) << "Expected \"" << __expected << "\" got \"" << __actual << "\"" << " Additionally: \"" << __hint << "\""; - } + return true; + } - return false; + if (__explain) + { + libtest::stream::make_cerr(file, line, func) << "Assertion \"" << __expression << "\" warning:" << __explain; } - return true; + return false; } } // namespace libtest diff --git a/libtest/fatal.cc b/libtest/fatal.cc index 288d53a4..d4459662 100644 --- a/libtest/fatal.cc +++ b/libtest/fatal.cc @@ -54,7 +54,7 @@ fatal::fatal(const char *file_arg, int line_arg, const char *func_arg, const cha strncpy(_mesg, last_error, sizeof(_mesg)); - snprintf(_error_message, sizeof(_error_message), "%s:%d FATAL:%s (%s)", _file, _line, last_error, _func); + snprintf(_error_message, sizeof(_error_message), "%s", last_error); } static bool _disabled= false; @@ -101,7 +101,7 @@ disconnected::disconnected(const char *file_arg, int line_arg, const char *func_ (void)vsnprintf(last_error, sizeof(last_error), format, args); va_end(args); - snprintf(_error_message, sizeof(_error_message), "%s:%d FATAL:%s (%s)", _file, _line, last_error, _func); + snprintf(_error_message, sizeof(_error_message), "%s", last_error); } } // namespace libtest diff --git a/libtest/framework.cc b/libtest/framework.cc index ea7ca665..daea4f4e 100644 --- a/libtest/framework.cc +++ b/libtest/framework.cc @@ -84,7 +84,7 @@ Framework::~Framework() for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { delete *iter; } @@ -104,7 +104,7 @@ void Framework::exec() { for (std::vector::iterator iter= _collection.begin(); iter != _collection.end() and (_signal.is_shutdown() == false); - iter++) + ++iter) { if (_only_run.empty() == false and fnmatch(_only_run.c_str(), (*iter)->name(), 0)) @@ -134,13 +134,20 @@ void Framework::exec() } catch (libtest::fatal& e) { + _failed++; stream::cerr(e.file(), e.line(), e.func()) << e.mesg(); } catch (libtest::disconnected& e) { + _failed++; Error << "Unhandled disconnection occurred:" << e.what(); throw; } + catch (...) + { + _failed++; + throw; + } Outn(); } @@ -151,7 +158,7 @@ uint32_t Framework::sum_total() uint32_t count= 0; for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { count+= (*iter)->total(); } @@ -164,7 +171,7 @@ uint32_t Framework::sum_success() uint32_t count= 0; for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { count+= (*iter)->success(); } @@ -177,7 +184,7 @@ uint32_t Framework::sum_skipped() uint32_t count= 0; for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { count+= (*iter)->skipped(); } @@ -190,7 +197,7 @@ uint32_t Framework::sum_failed() uint32_t count= 0; for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { count+= (*iter)->failed(); } diff --git a/libtest/gearmand.cc b/libtest/gearmand.cc index a70de37a..82953e99 100644 --- a/libtest/gearmand.cc +++ b/libtest/gearmand.cc @@ -94,9 +94,7 @@ public: gearman_client_free(client); return true; } -#if 0 Error << hostname().c_str() << ":" << port() << " was " << gearman_strerror(rc) << " extended: " << gearman_client_error(client); -#endif } else { diff --git a/libtest/has.cc b/libtest/has.cc index 72441819..ba4bbfc6 100644 --- a/libtest/has.cc +++ b/libtest/has.cc @@ -113,15 +113,13 @@ bool has_drizzled() bool has_mysqld() { -#if defined(HAVE_MYSQL_BUILD) && HAVE_MYSQL_BUILD - if (HAVE_MYSQL_BUILD) + if (HAVE_MYSQLD_BUILD) { - if (access(HAVE_MYSQL, X_OK) == 0) + if (access(MYSQLD_BINARY, X_OK) == 0) { return true; } } -#endif return false; } diff --git a/libtest/m4/ax_lib_mysql.m4 b/libtest/m4/ax_lib_mysql.m4 new file mode 100644 index 00000000..e27d755d --- /dev/null +++ b/libtest/m4/ax_lib_mysql.m4 @@ -0,0 +1,147 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_lib_mysql.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_LIB_MYSQL([MINIMUM-VERSION]) +# +# DESCRIPTION +# +# This macro provides tests of availability of MySQL client library of +# particular version or newer. +# +# AX_LIB_MYSQL macro takes only one argument which is optional. If there +# is no required version passed, then macro does not run version test. +# +# The --with-mysql option takes one of three possible values: +# +# no - do not check for MySQL client library +# +# yes - do check for MySQL library in standard locations (mysql_config +# should be in the PATH) +# +# path - complete path to mysql_config utility, use this option if +# mysql_config can't be found in the PATH +# +# This macro calls: +# +# AC_SUBST(MYSQL_CFLAGS) +# AC_SUBST(MYSQL_LDFLAGS) +# AC_SUBST(MYSQL_VERSION) +# +# And sets: +# +# HAVE_MYSQL +# +# LICENSE +# +# Copyright (c) 2008 Mateusz Loskot +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 12 + +AC_DEFUN([AX_LIB_MYSQL], +[ + AC_ARG_WITH([mysql], + AS_HELP_STRING([--with-mysql=@<:@ARG@:>@], + [use MySQL client library @<:@default=yes@:>@, optionally specify path to mysql_config] + ), + [ + if test "$withval" = "no"; then + want_mysql="no" + elif test "$withval" = "yes"; then + want_mysql="yes" + else + want_mysql="yes" + MYSQL_CONFIG="$withval" + fi + ], + [want_mysql="yes"] + ) + AC_ARG_VAR([MYSQL_CONFIG], [Full path to mysql_config program]) + + MYSQL_CFLAGS="" + MYSQL_LDFLAGS="" + MYSQL_VERSION="" + + dnl + dnl Check MySQL libraries + dnl + + if test "$want_mysql" = "yes"; then + + if test -z "$MYSQL_CONFIG" ; then + AC_PATH_PROGS([MYSQL_CONFIG], [mysql_config mysql_config5], [no]) + fi + + if test "$MYSQL_CONFIG" != "no"; then + MYSQL_CFLAGS="`$MYSQL_CONFIG --cflags`" + MYSQL_LDFLAGS="`$MYSQL_CONFIG --libs`" + + MYSQL_VERSION=`$MYSQL_CONFIG --version` + + found_mysql="yes" + else + found_mysql="no" + fi + fi + + dnl + dnl Check if required version of MySQL is available + dnl + + + mysql_version_req=ifelse([$1], [], [], [$1]) + + if test "$found_mysql" = "yes" -a -n "$mysql_version_req"; then + + AC_MSG_CHECKING([if MySQL version is >= $mysql_version_req]) + + dnl Decompose required version string of MySQL + dnl and calculate its number representation + mysql_version_req_major=`expr $mysql_version_req : '\([[0-9]]*\)'` + mysql_version_req_minor=`expr $mysql_version_req : '[[0-9]]*\.\([[0-9]]*\)'` + mysql_version_req_micro=`expr $mysql_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` + if test "x$mysql_version_req_micro" = "x"; then + mysql_version_req_micro="0" + fi + + mysql_version_req_number=`expr $mysql_version_req_major \* 1000000 \ + \+ $mysql_version_req_minor \* 1000 \ + \+ $mysql_version_req_micro` + + dnl Decompose version string of installed MySQL + dnl and calculate its number representation + mysql_version_major=`expr $MYSQL_VERSION : '\([[0-9]]*\)'` + mysql_version_minor=`expr $MYSQL_VERSION : '[[0-9]]*\.\([[0-9]]*\)'` + mysql_version_micro=`expr $MYSQL_VERSION : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` + if test "x$mysql_version_micro" = "x"; then + mysql_version_micro="0" + fi + + mysql_version_number=`expr $mysql_version_major \* 1000000 \ + \+ $mysql_version_minor \* 1000 \ + \+ $mysql_version_micro` + + mysql_version_check=`expr $mysql_version_number \>\= $mysql_version_req_number` + if test "$mysql_version_check" = "1"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + + if test "$found_mysql" = "yes" ; then + AC_DEFINE([HAVE_MYSQL], [1], + [Define to 1 if MySQL libraries are available]) + fi + + AC_SUBST([MYSQL_VERSION]) + AC_SUBST([MYSQL_CFLAGS]) + AC_SUBST([MYSQL_LDFLAGS]) +]) diff --git a/libtest/m4/ax_prog_memcached.m4 b/libtest/m4/ax_prog_memcached.m4 new file mode 100644 index 00000000..d161dbe3 --- /dev/null +++ b/libtest/m4/ax_prog_memcached.m4 @@ -0,0 +1,59 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_prog_memcached.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PROG_MEMCACHED +# +# DESCRIPTION +# +# Check for the program 'memcached' let script continue if exists & works +# pops up error message if not. +# +# Besides checking existence, this macro also set these environment +# variables upon completion: +# +# MEMCACHED = which memcached +# +# LICENSE +# +# Copyright (c) 2012 Brian Aker +# Copyright (c) 2008 Gleen Salmon +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 6 + +AU_ALIAS([AC_PROG_MEMCACHED], [AX_PROG_MEMCACHED]) +AC_DEFUN([AX_PROG_MEMCACHED],[ +AC_REQUIRE([AC_EXEEXT])dnl +AC_PATH_PROG(MEMCACHED, memcached$EXEEXT, nocommand) +if test "$MEMCACHED" = nocommand; then + AC_MSG_WARN([memcached not found in $PATH]) +fi;dnl +]) diff --git a/libtest/m4/ax_prog_mysqld.m4 b/libtest/m4/ax_prog_mysqld.m4 new file mode 100644 index 00000000..7ecd3669 --- /dev/null +++ b/libtest/m4/ax_prog_mysqld.m4 @@ -0,0 +1,58 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_prog_mysqld.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PROG_MYSQLD +# +# DESCRIPTION +# +# Check for the program 'mysqld' let script continue if exists & works +# pops up error message if not. +# +# Besides checking existence, this macro also set these environment +# variables upon completion: +# +# MYSQLD = which mysqld +# +# LICENSE +# +# Copyright (c) 2008 Gleen Salmon +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 6 + +AU_ALIAS([AC_PROG_MYSQLD], [AX_PROG_MYSQLD]) +AC_DEFUN([AX_PROG_MYSQLD],[ +AC_REQUIRE([AC_EXEEXT])dnl +AC_PATH_PROG(MYSQLD, mysqld$EXEEXT, nocommand) +if test "$MYSQLD" = nocommand; then + AC_MSG_WARN([mysqld not found in $PATH]) +fi;dnl +]) diff --git a/m4/memcached.m4 b/libtest/m4/memcached.m4 similarity index 97% rename from m4/memcached.m4 rename to libtest/m4/memcached.m4 index c33f1da2..ac8068b3 100644 --- a/m4/memcached.m4 +++ b/libtest/m4/memcached.m4 @@ -1,3 +1,4 @@ +AX_PROG_MYSQLD AX_WITH_PROG(MEMCACHED_BINARY, [memcached]) AS_IF([test -f "$ac_cv_path_MEMCACHED_BINARY"], [ diff --git a/libtest/m4/mysql.m4 b/libtest/m4/mysql.m4 new file mode 100644 index 00000000..ed61b40d --- /dev/null +++ b/libtest/m4/mysql.m4 @@ -0,0 +1,20 @@ +AX_LIB_MYSQL([5.0]) +AM_CONDITIONAL(HAVE_LIBMYSQL, test "x${found_mysql}" = "xyes") +AS_IF([test "x${found_mysql}" = "xyes"], + [ + AC_DEFINE([HAVE_LIBMYSQL_BUILD], [1], [Define to 1 if MySQL libraries are available]) + ], + [ + AC_DEFINE([HAVE_LIBMYSQL_BUILD], [0], [Define to 1 if MySQL libraries are available]) + ]) +AX_PROG_MYSQLD +AS_IF([test -f "$ac_cv_path_MYSQLD"], + [ + AC_DEFINE([HAVE_MYSQLD_BUILD], [1], [Define to 1 if MySQLD binary is available]) + AC_DEFINE_UNQUOTED([MYSQLD_BINARY], "$ac_cv_path_MYSQLD", [Name of the mysqld binary used in make test]) + ], + [ + AC_DEFINE([HAVE_MYSQLD_BUILD], [0], [Define to 1 if MySQLD binary is available]) + AC_DEFINE([MYSQLD_BINARY], [0], [Name of the mysqld binary used in make test]) + ]) + diff --git a/libtest/main.cc b/libtest/main.cc index 6597f84b..5fa53889 100644 --- a/libtest/main.cc +++ b/libtest/main.cc @@ -88,6 +88,17 @@ int main(int argc, char *argv[]) std::string collection_to_run; std::string wildcard; + /* + Valgrind does not currently work reliably, or sometimes at all, on OSX + - Fri Jun 15 11:24:07 EDT 2012 + */ +#if defined(TARGET_OS_OSX) && TARGET_OS_OSX + if (valgrind_is_caller()) + { + return EXIT_SKIP; + } +#endif + // Options parsing { enum long_option_t { @@ -253,6 +264,7 @@ int main(int argc, char *argv[]) return EXIT_SKIP; case TEST_FAILURE: + std::cerr << "frame->create()" << std::endl; return EXIT_FAILURE; } } @@ -291,7 +303,7 @@ int main(int argc, char *argv[]) } catch (libtest::fatal& e) { - std::cerr << e.what() << std::endl; + std::cerr << "FATAL:" << e.what() << std::endl; exit_code= EXIT_FAILURE; } catch (libtest::disconnected& e) @@ -301,7 +313,7 @@ int main(int argc, char *argv[]) } catch (std::exception& e) { - std::cerr << e.what() << std::endl; + std::cerr << "std::exception:" << e.what() << std::endl; exit_code= EXIT_FAILURE; } catch (...) diff --git a/libtest/port.cc b/libtest/port.cc index 7dbba4e0..17e03e49 100644 --- a/libtest/port.cc +++ b/libtest/port.cc @@ -69,9 +69,9 @@ struct socket_st { void release(in_port_t _arg) { - for(socket_port_t::iterator iter= _pair.begin(); - iter != _pair.end(); - iter++) + for (socket_port_t::iterator iter= _pair.begin(); + iter != _pair.end(); + ++iter) { if ((*iter).second == _arg) { @@ -83,9 +83,9 @@ struct socket_st { ~socket_st() { - for(socket_port_t::iterator iter= _pair.begin(); - iter != _pair.end(); - iter++) + for (socket_port_t::iterator iter= _pair.begin(); + iter != _pair.end(); + ++iter) { shutdown((*iter).first, SHUT_RDWR); close((*iter).first); diff --git a/libtest/runner.cc b/libtest/runner.cc index 01cb99a8..2d783697 100644 --- a/libtest/runner.cc +++ b/libtest/runner.cc @@ -39,7 +39,8 @@ namespace libtest { -Runner::Runner() +Runner::Runner() : + _servers(NULL) { } diff --git a/libtest/server.cc b/libtest/server.cc index 68a463b8..99991209 100644 --- a/libtest/server.cc +++ b/libtest/server.cc @@ -111,6 +111,7 @@ bool Server::check() { _app.slurp(); _app.check(); + return true; } @@ -148,14 +149,9 @@ bool Server::cycle() bool Server::wait_for_pidfile() const { - if (has_pid_file()) - { - Wait wait(pid_file(), 4); - - return wait.successful(); - } + Wait wait(pid_file(), 4); - return true; + return wait.successful(); } bool Server::has_pid() const @@ -211,32 +207,29 @@ bool Server::start() dream(5, 50000); } + size_t repeat= 5; _app.slurp(); - if (has_pid_file()) + while (--repeat) { - size_t repeat= 5; - while (--repeat) + if (pid_file().empty() == false) { - if (pid_file().empty() == false) - { - Wait wait(pid_file(), 8); + Wait wait(pid_file(), 8); - if (wait.successful() == false) + if (wait.successful() == false) + { + if (_app.check()) { - if (_app.check()) - { - _app.slurp(); - continue; - } - - char buf[PATH_MAX]; - char *getcwd_buf= getcwd(buf, sizeof(buf)); - throw libtest::fatal(LIBYATL_DEFAULT_PARAM, - "Unable to open pidfile in %s for: %s stderr:%s", - getcwd_buf ? getcwd_buf : "", - _running.c_str(), - _app.stderr_c_str()); + _app.slurp(); + continue; } + + char buf[PATH_MAX]; + char *getcwd_buf= getcwd(buf, sizeof(buf)); + throw libtest::fatal(LIBYATL_DEFAULT_PARAM, + "Unable to open pidfile in %s for: %s stderr:%s", + getcwd_buf ? getcwd_buf : "", + _running.c_str(), + _app.stderr_c_str()); } } } @@ -272,30 +265,38 @@ bool Server::start() _app.slurp(); if (kill_file(pid_file()) == false) { - throw libtest::fatal(LIBYATL_DEFAULT_PARAM, - "Failed to kill off server, waited: %u after startup occurred, when pinging failed: %.*s stderr:%.*s", - this_wait, - int(_running.size()), _running.c_str(), - int(_app.stderr_result_length()), _app.stderr_c_str()); - } + libtest::fatal err(LIBYATL_DEFAULT_PARAM, + "Failed to kill off server, waited: %u after startup occurred, when pinging failed: %.*s stderr:%.*s", + this_wait, + int(_running.size()), _running.c_str(), + int(_app.stderr_result_length()), _app.stderr_c_str()); - throw libtest::fatal(LIBYATL_DEFAULT_PARAM, - "Failed native ping(), pid: %d is alive: %s waited: %u server started, having pid_file. exec: %.*s stderr:%.*s", + stream::cerr(err.file(), err.line(), err.func()) << err.what(); + } + else + { + libtest::fatal err(LIBYATL_DEFAULT_PARAM, + "Failed native ping(), pid: %d was alive: %s waited: %u server started, having pid_file. exec: %.*s stderr:%.*s", int(_app.pid()), _app.check() ? "true" : "false", this_wait, int(_running.size()), _running.c_str(), int(_app.stderr_result_length()), _app.stderr_c_str()); + + stream::cerr(err.file(), err.line(), err.func()) << err.what(); + } } else { - throw libtest::fatal(LIBYATL_DEFAULT_PARAM, - "Failed native ping(), pid: %d is alive: %s waited: %u server started. exec: %.*s stderr:%.*s", - int(_app.pid()), - _app.check() ? "true" : "false", - this_wait, - int(_running.size()), _running.c_str(), - int(_app.stderr_result_length()), _app.stderr_c_str()); + libtest::fatal err(LIBYATL_DEFAULT_PARAM, + "Failed native ping(), pid: %d is alive: %s waited: %u server started. exec: %.*s stderr:%.*s", + int(_app.pid()), + _app.check() ? "true" : "false", + this_wait, + int(_running.size()), _running.c_str(), + int(_app.stderr_result_length()), _app.stderr_c_str()); + + stream::cerr(err.file(), err.line(), err.func()) << err.what(); } _running.clear(); return false; @@ -400,7 +401,6 @@ bool Server::set_log_file() bool Server::args(Application& app) { - // Set a log file if it was requested (and we can) if (has_log_file_option()) { @@ -414,7 +414,6 @@ bool Server::args(Application& app) } // Update pid_file - if (has_pid_file()) { if (_pid_file.empty() and set_pid_file() == false) { @@ -439,7 +438,7 @@ bool Server::args(Application& app) port_option(app, _port); } - for (Options::const_iterator iter= _options.begin(); iter != _options.end(); iter++) + for (Options::const_iterator iter= _options.begin(); iter != _options.end(); ++iter) { if ((*iter).second.empty() == false) { diff --git a/libtest/server.h b/libtest/server.h index 736810be..a41e621b 100644 --- a/libtest/server.h +++ b/libtest/server.h @@ -204,8 +204,6 @@ public: _log_file.clear(); } - bool args(Application&); - pid_t pid() const; bool has_pid() const; @@ -264,6 +262,8 @@ private: bool set_log_file(); bool set_socket_file(); void reset_pid(); + bool args(Application&); + std::string _error; }; diff --git a/libtest/server_container.cc b/libtest/server_container.cc index 27198ba3..2bea1ad9 100644 --- a/libtest/server_container.cc +++ b/libtest/server_container.cc @@ -55,13 +55,15 @@ static inline std::string &rtrim(std::string &s) namespace libtest { +Server* server_startup_st::last() +{ + return servers.back(); +} + void server_startup_st::push_server(Server *arg) { servers.push_back(arg); - char port_str[NI_MAXSERV]; - snprintf(port_str, sizeof(port_str), "%u", int(arg->port())); - std::string server_config_string; if (arg->has_socket()) { @@ -73,6 +75,9 @@ void server_startup_st::push_server(Server *arg) } else { + char port_str[NI_MAXSERV]; + snprintf(port_str, sizeof(port_str), "%u", int(arg->port())); + server_config_string+= "--server="; server_config_string+= arg->hostname(); server_config_string+= ":"; @@ -94,6 +99,7 @@ Server* server_startup_st::pop_server() // host_to_shutdown => host number to shutdown in array bool server_startup_st::shutdown(uint32_t host_to_shutdown) { + Error << servers.size() << " > " << host_to_shutdown; if (servers.size() > host_to_shutdown) { Server* tmp= servers[host_to_shutdown]; @@ -111,7 +117,7 @@ bool server_startup_st::shutdown(uint32_t host_to_shutdown) void server_startup_st::clear() { - for (std::vector::iterator iter= servers.begin(); iter != servers.end(); iter++) + for (std::vector::iterator iter= servers.begin(); iter != servers.end(); ++iter) { delete *iter; } @@ -121,7 +127,7 @@ void server_startup_st::clear() bool server_startup_st::check() const { bool success= true; - for (std::vector::const_iterator iter= servers.begin(); iter != servers.end(); iter++) + for (std::vector::const_iterator iter= servers.begin(); iter != servers.end(); ++iter) { if ((*iter)->check() == false) { @@ -135,9 +141,9 @@ bool server_startup_st::check() const bool server_startup_st::shutdown() { bool success= true; - for (std::vector::iterator iter= servers.begin(); iter != servers.end(); iter++) + for (std::vector::iterator iter= servers.begin(); iter != servers.end(); ++iter) { - if ((*iter)->has_pid() and (*iter)->kill() == false) + if ((*iter) and (*iter)->has_pid() and (*iter)->kill() == false) { Error << "Unable to kill:" << *(*iter); success= false; @@ -149,7 +155,7 @@ bool server_startup_st::shutdown() void server_startup_st::restart() { - for (std::vector::iterator iter= servers.begin(); iter != servers.end(); iter++) + for (std::vector::iterator iter= servers.begin(); iter != servers.end(); ++iter) { (*iter)->start(); } @@ -176,6 +182,11 @@ bool server_startup_st::validate() } bool server_startup(server_startup_st& construct, const std::string& server_type, in_port_t try_port, int argc, const char *argv[], const bool opt_startup_message) +{ + construct.start_server(server_type, try_port, argc, argv, opt_startup_message); +} + +bool server_startup_st::start_server(const std::string& server_type, in_port_t try_port, int argc, const char *argv[], const bool opt_startup_message) { if (try_port <= 0) { @@ -225,13 +236,13 @@ bool server_startup(server_startup_st& construct, const std::string& server_type { if (HAVE_LIBMEMCACHED) { - server= build_memcached_sasl("localhost", try_port, construct.username(), construct.password()); + server= build_memcached_sasl("localhost", try_port, username(), password()); } } } else if (server_type.compare("memcached") == 0) { - if (MEMCACHED_BINARY) + if (HAVE_MEMCACHED_BINARY) { if (HAVE_LIBMEMCACHED) { @@ -252,7 +263,7 @@ bool server_startup(server_startup_st& construct, const std::string& server_type if (server == NULL) { - fatal_message("Launching of an unknown server was attempted"); + throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "Launching of an unknown server was attempted: %s", server_type.c_str()); } /* @@ -298,12 +309,14 @@ bool server_startup(server_startup_st& construct, const std::string& server_type throw; } - construct.push_server(server); + push_server(server); return true; } -bool server_startup_st::start_socket_server(const std::string& server_type, const in_port_t try_port, int argc, const char *argv[]) +bool server_startup_st::start_socket_server(const std::string& server_type, const in_port_t try_port, int argc, + const char *argv[], + const bool opt_startup_message) { (void)try_port; Outn(); @@ -393,7 +406,12 @@ bool server_startup_st::start_socket_server(const std::string& server_type, cons } else { - Out << "STARTING SERVER(pid:" << server->pid() << "): " << server->running(); + if (opt_startup_message) + { + Outn(); + Out << "STARTING SERVER(pid:" << server->pid() << "): " << server->running(); + Outn(); + } } } catch (...) diff --git a/libtest/server_container.h b/libtest/server_container.h index b358e28d..a0287e6d 100644 --- a/libtest/server_container.h +++ b/libtest/server_container.h @@ -68,7 +68,8 @@ public: bool validate(); - bool start_socket_server(const std::string& server_type, const in_port_t try_port, int argc, const char *argv[]); + bool start_socket_server(const std::string& server_type, const in_port_t try_port, int argc, const char *argv[], const bool opt_startup_message= true); + bool start_server(const std::string& server_type, const in_port_t try_port, int argc, const char *argv[], const bool opt_startup_message= true); uint32_t count() const { @@ -121,6 +122,7 @@ public: bool check() const; void push_server(Server *); + Server* last(); Server *pop_server(); unsigned long int servers_to_run() const diff --git a/libtest/test.h b/libtest/test.h index 42443d9a..5c449ab0 100644 --- a/libtest/test.h +++ b/libtest/test.h @@ -92,16 +92,11 @@ do \ } \ } while (0) -#define test_true_got(__expected, __hint) \ -do \ -{ \ - if (not libtest::_compare_truth_hint(__FILE__, __LINE__, __func__, ((__expected)), #__expected, ((__hint)))) \ - { \ - libtest::create_core(); \ - return TEST_FAILURE; \ - } \ -} while (0) -#define test_true_hint test_true_got +#define test_true_got(A, B) test_true(A); +#define test_true_hint(A, B) test_true(A); + +#define test_compare_hint(A, B, C) test_compare(A, B); +#define test_compare_got(A, B, C) test_compare(A, B); #define test_skip(__expected, __actual) \ do \ @@ -112,15 +107,6 @@ do \ } \ } while (0) -#define test_skip_hint(__expected, __actual, __hint) \ -do \ -{ \ - if (libtest::_compare_hint(__FILE__, __LINE__, __func__, (__expected), (__actual), (__hint)) == false) \ - { \ - return TEST_SKIPPED; \ - } \ -} while (0) - #define test_skip_valgrind() \ do \ { \ @@ -164,7 +150,7 @@ do \ #define test_ne_compare(__expected, __actual) \ do \ { \ - if (libtest::_ne_compare_hint(__FILE__, __LINE__, __func__, ((__expected)), ((__actual)), true) == false) \ + if (libtest::_ne_compare(__FILE__, __LINE__, __func__, ((__expected)), ((__actual)), true) == false) \ { \ libtest::create_core(); \ return TEST_FAILURE; \ @@ -193,43 +179,18 @@ do \ #define test_null test_zero -#define test_compare_got(__expected, __actual, __hint) \ -do \ -{ \ - if (libtest::_compare_hint(__FILE__, __LINE__, __func__, (__expected), (__actual), (__hint)) == false) \ - { \ - libtest::create_core(); \ - return TEST_FAILURE; \ - } \ -} while (0) - -#define test_compare_hint test_compare_got - #define test_compare_warn(__expected, __actual) \ do \ { \ void(libtest::_compare(__FILE__, __LINE__, __func__, (__expected), (__actual)), true); \ } while (0) -#define test_compare_warn_hint(__expected, __actual, __hint) \ -do \ -{ \ - libtest::_compare_hint(__FILE__, __LINE__, __func__, (__expected), (__actual), (__hint)); \ -} while (0) - -#define test_warn(__truth) \ -do \ -{ \ - void(libtest::_truth(__FILE__, __LINE__, __func__, (__truth))); \ -} while (0) - -#define test_warn_hint(__truth, __hint) \ +#define test_warn(__truth, __explain) \ do \ { \ - void(libtest::_compare_truth_hint(__FILE__, __LINE__, __func__, (__truth), #__truth, (__hint))); \ + void(libtest::_assert_truth(__FILE__, __LINE__, __func__, bool((__truth)), #__truth, __explain)); \ } while (0) - #define test_strcmp(__expected, __actual) \ do \ { \ @@ -247,17 +208,6 @@ do \ } \ } while (0) -#define test_memcmp_hint(A,B,C,__hint) \ -do \ -{ \ - if ((A) == NULL or (B) == NULL or memcmp((A), (B), (C))) \ - { \ - fprintf(stderr, "\n%s:%d: (hint:%s) %.*s -> %.*s\n", __FILE__, __LINE__, __hint, (int)(C), (char *)(A), (int)(C), (char *)(B)); \ - libtest::create_core(); \ - return TEST_FAILURE; \ - } \ -} while (0) - #define test_return_if(__test_return_t) \ do \ { \ diff --git a/libtest/unittest.cc b/libtest/unittest.cc index 11f78071..c0381f4d 100644 --- a/libtest/unittest.cc +++ b/libtest/unittest.cc @@ -51,6 +51,8 @@ using namespace libtest; +static std::string testing_service; + static test_return_t LIBTOOL_COMMAND_test(void *) { test_true(getenv("LIBTOOL_COMMAND")); @@ -325,39 +327,37 @@ static test_return_t test_skip_false_TEST(void *object) return TEST_SUCCESS; } -static test_return_t memcached_cycle_test(void *object) +static test_return_t server_startup_TEST(void *object) { server_startup_st *servers= (server_startup_st*)object; test_true(servers); - if (MEMCACHED_BINARY and HAVE_LIBMEMCACHED) - { - test_true(has_memcached()); - test_true(server_startup(*servers, "memcached", get_free_port(), 0, NULL)); + test_true(servers->start_server(testing_service, get_free_port(), 0, NULL, true)); - return TEST_SUCCESS; - } + test_true(servers->last()); + pid_t last_pid= servers->last()->pid(); - return TEST_SKIPPED; + test_compare(servers->last()->pid(), last_pid); + test_true(last_pid > 1); + test_compare(kill(last_pid, 0), 0); + + test_true(servers->shutdown()); +#if 0 + test_compare(servers->last()->pid(), -1); + test_compare(kill(last_pid, 0), -1); +#endif + + return TEST_SUCCESS; } -static test_return_t memcached_socket_cycle_test(void *object) +static test_return_t socket_server_startup_TEST(void *object) { server_startup_st *servers= (server_startup_st*)object; test_true(servers); - if (MEMCACHED_BINARY) - { - if (HAVE_LIBMEMCACHED) - { - test_true(has_memcached()); - test_true(servers->start_socket_server("memcached", get_free_port(), 0, NULL)); + test_true(servers->start_socket_server(testing_service, get_free_port(), 0, NULL, true)); - return TEST_SUCCESS; - } - } - - return TEST_SKIPPED; + return TEST_SUCCESS; } static test_return_t memcached_sasl_test(void *object) @@ -721,14 +721,14 @@ static test_return_t number_of_cpus_TEST(void *) static test_return_t check_dns_TEST(void *) { - test_warn_hint(libtest::check_dns(), "Broken DNS server/no DNS server found"); + test_warn(libtest::check_dns(), "Broken DNS server/no DNS server found"); return TEST_SUCCESS; } static test_return_t lookup_true_TEST(void *) { - test_warn_hint(libtest::lookup("exist.gearman.info"), "dns is not currently working"); + test_warn(libtest::lookup("exist.gearman.info"), "dns is not currently working"); return TEST_SUCCESS; } @@ -806,18 +806,23 @@ test_st gearmand_tests[] ={ {0, 0, 0} }; -static test_return_t check_for_libmemcached(void *) +static test_return_t check_for_libmemcached(void* object) { test_skip(true, HAVE_LIBMEMCACHED); test_skip(true, has_memcached()); + + server_startup_st *servers= (server_startup_st*)object; + test_true(servers); + servers->clear(); + + testing_service= "memcached"; + return TEST_SUCCESS; } -test_st memcached_tests[] ={ - {"memcached startup-shutdown", 0, memcached_cycle_test }, - {"memcached-light startup-shutdown", 0, memcached_light_cycle_TEST }, - {"memcached(socket file) startup-shutdown", 0, memcached_socket_cycle_test }, - {"memcached_sasl() startup-shutdown", 0, memcached_sasl_test }, +test_st memcached_TESTS[] ={ + {"memcached startup-shutdown", 0, server_startup_TEST }, + {"memcached(socket file) startup-shutdown", 0, socket_server_startup_TEST }, {"_compare(memcached_return_t)", 0, _compare_memcached_return_t_test }, {0, 0, 0} }; @@ -963,7 +968,7 @@ collection_st collection[] ={ {"directories", 0, 0, directories_tests}, {"comparison", 0, 0, comparison_tests}, {"gearmand", check_for_gearman, 0, gearmand_tests}, - {"memcached", check_for_libmemcached, 0, memcached_tests}, + {"memcached", check_for_libmemcached, 0, memcached_TESTS }, {"drizzled", check_for_drizzle, 0, drizzled_tests}, {"cmdline", 0, 0, cmdline_tests}, {"application", 0, 0, application_tests}, diff --git a/libtest/yatl.m4 b/libtest/yatl.m4 index 2ad333d5..8a42407b 100644 --- a/libtest/yatl.m4 +++ b/libtest/yatl.m4 @@ -5,3 +5,6 @@ dnl with or without modifications, as long as this notice is preserved. AC_SUBST([LIBTEST_VERSION], [1.0]) AC_CONFIG_FILES([libtest/version.h]) + +m4_include([libtest/m4/mysql.m4]) +m4_include([libtest/m4/memcached.m4]) diff --git a/tests/failure.cc b/tests/failure.cc index 016ea5e4..95c8fb6a 100644 --- a/tests/failure.cc +++ b/tests/failure.cc @@ -135,6 +135,8 @@ static test_return_t MEMCACHED_SERVER_TEMPORARILY_DISABLED_TEST(memcached_st *me static test_return_t MEMCACHED_SERVER_TEMPORARILY_DISABLED_to_success_TEST(memcached_st *memc) { + return TEST_SKIPPED; + test_compare_got(MEMCACHED_CONNECTION_FAILURE, memcached_set(memc, test_literal_param("foo"), @@ -151,11 +153,14 @@ static test_return_t MEMCACHED_SERVER_TEMPORARILY_DISABLED_to_success_TEST(memca global_framework->servers().restart(); + int limit= 5; memcached_return_t ret; do { libtest::dream(3, 0); ret= memcached_set(memc, test_literal_param("foo"), NULL, 0, time_t(0), uint32_t(0)); - } while (ret == MEMCACHED_SERVER_TEMPORARILY_DISABLED); + } while (ret == MEMCACHED_SERVER_TEMPORARILY_DISABLED and --limit); + + test_true(limit); test_compare_got(MEMCACHED_SUCCESS, ret, memcached_last_error_message(memc)); @@ -164,6 +169,8 @@ static test_return_t MEMCACHED_SERVER_TEMPORARILY_DISABLED_to_success_TEST(memca static test_return_t MEMCACHED_SERVER_MARKED_DEAD_TEST(memcached_st *memc) { + return TEST_SKIPPED; + test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_RETRY_TIMEOUT, 30)); test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS, true)); @@ -175,10 +182,13 @@ static test_return_t MEMCACHED_SERVER_MARKED_DEAD_TEST(memcached_st *memc) } while (ret == MEMCACHED_SUCCESS or ret == MEMCACHED_CONNECTION_FAILURE); test_compare(MEMCACHED_SERVER_TEMPORARILY_DISABLED, ret); + int limit= 5; do { libtest::dream(3, 0); ret= memcached_set(memc, test_literal_param("foo"), NULL, 0, time_t(0), uint32_t(0)); - } while (ret == MEMCACHED_SERVER_TEMPORARILY_DISABLED or ret == MEMCACHED_SUCCESS); + } while ((ret == MEMCACHED_SERVER_TEMPORARILY_DISABLED or ret == MEMCACHED_SUCCESS) and --limit); + + test_true(limit); test_compare_got(MEMCACHED_SERVER_MARKED_DEAD, ret, memcached_last_error_message(memc)); @@ -191,8 +201,8 @@ test_st cull_TESTS[] ={ }; test_st server_temporarily_disabled_TESTS[] ={ - { "memcached_set(MEMCACHED_SERVER_TEMPORARILY_DISABLED)", true, (test_callback_fn*)MEMCACHED_SERVER_TEMPORARILY_DISABLED_TEST }, { "memcached_set(MEMCACHED_SERVER_TEMPORARILY_DISABLED -> MEMCACHED_SUCCESS)", true, (test_callback_fn*)MEMCACHED_SERVER_TEMPORARILY_DISABLED_to_success_TEST }, + { "memcached_set(MEMCACHED_SERVER_TEMPORARILY_DISABLED)", true, (test_callback_fn*)MEMCACHED_SERVER_TEMPORARILY_DISABLED_TEST }, { 0, 0, 0 } }; diff --git a/tests/hash_plus.cc b/tests/hash_plus.cc index 9cb4b384..19c77c38 100644 --- a/tests/hash_plus.cc +++ b/tests/hash_plus.cc @@ -158,7 +158,7 @@ static test_return_t set_function_test(void *) hash_val= hashk.digest(*ptr, strlen(*ptr)); char buffer[1024]; snprintf(buffer, sizeof(buffer), "%lu %lus %s", (unsigned long)list[x], (unsigned long)hash_val, libhashkit_string_hash(*algo)); - test_true_got(list[x] == hash_val, buffer); + test_compare(list[x], hash_val); } } @@ -171,7 +171,7 @@ static test_return_t set_distribution_function_test(void *) hashkit_return_t rc; rc= hashk.set_distribution_function(HASHKIT_HASH_CUSTOM); - test_true_got(rc == HASHKIT_FAILURE or rc == HASHKIT_INVALID_ARGUMENT, hashkit_strerror(NULL, rc)); + test_true(rc == HASHKIT_FAILURE or rc == HASHKIT_INVALID_ARGUMENT); test_compare(HASHKIT_SUCCESS, hashk.set_distribution_function(HASHKIT_HASH_JENKINS)); diff --git a/tests/libmemcached-1.0/debug.cc b/tests/libmemcached-1.0/debug.cc index 52170b9a..603e15ca 100644 --- a/tests/libmemcached-1.0/debug.cc +++ b/tests/libmemcached-1.0/debug.cc @@ -111,7 +111,7 @@ test_return_t confirm_keys_exist(memcached_st *memc, const char * const *keys, c 0, &rc); if (require_all) { - test_true_got(value, keys[x]); + test_true(value); if (key_matches_value) { test_strcmp(keys[x], value); @@ -119,7 +119,7 @@ test_return_t confirm_keys_exist(memcached_st *memc, const char * const *keys, c } else if (memcached_success(rc)) { - test_warn_hint(value, keys[x]); + test_warn(value, "get() did not return a value"); if (value and key_matches_value) { test_strcmp(keys[x], value); diff --git a/tests/libmemcached-1.0/dump.cc b/tests/libmemcached-1.0/dump.cc index 89f792a5..ee6100fe 100644 --- a/tests/libmemcached-1.0/dump.cc +++ b/tests/libmemcached-1.0/dump.cc @@ -119,27 +119,24 @@ test_return_t memcached_dump_TEST2(memcached_st *memc) test_true(length > 0); - test_compare_hint(MEMCACHED_SUCCESS, - memcached_set(memc, key, length, - NULL, 0, // Zero length values - time_t(0), uint32_t(0)), - memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, + memcached_set(memc, key, length, + NULL, 0, // Zero length values + time_t(0), uint32_t(0))); } memcached_quit(memc); uint64_t counter= 0; - test_compare_got(MEMCACHED_SUCCESS, - memcached_stat_execute(memc, NULL, item_counter, &counter), - memcached_last_error_message(memc)); - test_true_got(counter > 0, counter); + test_compare(MEMCACHED_SUCCESS, + memcached_stat_execute(memc, NULL, item_counter, &counter)); + test_true(counter > 0); size_t count= 0; memcached_dump_fn callbacks[1]; callbacks[0]= &callback_dump_counter; - test_compare_got(MEMCACHED_SUCCESS, - memcached_dump(memc, callbacks, &count, 1), - memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, + memcached_dump(memc, callbacks, &count, 1)); test_true(count); diff --git a/tests/libmemcached-1.0/encoding_key.cc b/tests/libmemcached-1.0/encoding_key.cc index b9edbc67..b9302f5a 100644 --- a/tests/libmemcached-1.0/encoding_key.cc +++ b/tests/libmemcached-1.0/encoding_key.cc @@ -58,12 +58,11 @@ test_return_t memcached_set_encoding_key_set_get_TEST(memcached_st* memc) test_true(memc_no_crypt); test_compare(MEMCACHED_SUCCESS, memcached_set_encoding_key(memc, test_literal_param(__func__))); - test_compare_hint(MEMCACHED_SUCCESS, memcached_set(memc, - test_literal_param(__func__), // Key - test_literal_param(__func__), // Value - time_t(0), - uint32_t(0)), - memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, memcached_set(memc, + test_literal_param(__func__), // Key + test_literal_param(__func__), // Value + time_t(0), + uint32_t(0))); { memcached_return_t rc; @@ -98,12 +97,11 @@ test_return_t memcached_set_encoding_key_add_get_TEST(memcached_st* memc) { test_compare(MEMCACHED_SUCCESS, memcached_set_encoding_key(memc, test_literal_param(__func__))); - test_compare_hint(MEMCACHED_SUCCESS, memcached_add(memc, + test_compare(MEMCACHED_SUCCESS, memcached_add(memc, test_literal_param(__func__), // Key test_literal_param(__func__), // Value time_t(0), - uint32_t(0)), - memcached_last_error_message(memc)); + uint32_t(0))); { memcached_return_t rc; @@ -127,12 +125,11 @@ test_return_t memcached_set_encoding_key_replace_get_TEST(memcached_st* memc) // First we add the key { - test_compare_hint(MEMCACHED_SUCCESS, memcached_add(memc, - test_literal_param(__func__), // Key - test_literal_param(__func__), // Value - time_t(0), - uint32_t(0)), - memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, memcached_add(memc, + test_literal_param(__func__), // Key + test_literal_param(__func__), // Value + time_t(0), + uint32_t(0))); memcached_return_t rc; size_t value_length; @@ -151,12 +148,11 @@ test_return_t memcached_set_encoding_key_replace_get_TEST(memcached_st* memc) libtest::vchar_t new_value; vchar::make(new_value); - test_compare_hint(MEMCACHED_SUCCESS, memcached_replace(memc, - test_literal_param(__func__), // Key - vchar_param(new_value), // Value - time_t(0), - uint32_t(0)), - memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, memcached_replace(memc, + test_literal_param(__func__), // Key + vchar_param(new_value), // Value + time_t(0), + uint32_t(0))); memcached_return_t rc; size_t value_length; @@ -261,12 +257,11 @@ test_return_t memcached_set_encoding_key_set_get_clone_TEST(memcached_st* memc) memcached_st *memc_crypt= memcached_clone(NULL, memc); test_true(memc_crypt); - test_compare_hint(MEMCACHED_SUCCESS, memcached_set(memc, + test_compare(MEMCACHED_SUCCESS, memcached_set(memc, test_literal_param(__func__), // Key test_literal_param(__func__), // Value time_t(0), - uint32_t(0)), - memcached_last_error_message(memc)); + uint32_t(0))); { memcached_return_t rc; @@ -346,7 +341,7 @@ test_return_t memcached_set_encoding_key_set_grow_key_TEST(memcached_st* memc) { break; } - test_compare_hint(MEMCACHED_SUCCESS, rc, memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, rc); } { diff --git a/tests/libmemcached-1.0/exist.cc b/tests/libmemcached-1.0/exist.cc index 5815d6cb..7d1178ff 100644 --- a/tests/libmemcached-1.0/exist.cc +++ b/tests/libmemcached-1.0/exist.cc @@ -49,10 +49,10 @@ test_return_t memcached_exist_NOTFOUND(memcached_st *memc) test_return_t memcached_exist_SUCCESS(memcached_st *memc) { - test_compare_got(MEMCACHED_SUCCESS, memcached_set(memc, test_literal_param("frog"), 0, 0, 0, 0), memcached_last_error_message(memc)); - test_compare_got(MEMCACHED_SUCCESS, memcached_exist(memc, test_literal_param("frog")), memcached_last_error_message(memc)); - test_compare_got(MEMCACHED_SUCCESS, memcached_delete(memc, test_literal_param("frog"), 0), memcached_last_error_message(memc)); - test_compare_got(MEMCACHED_NOTFOUND, memcached_exist(memc, test_literal_param("frog")), memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, memcached_set(memc, test_literal_param("frog"), 0, 0, 0, 0)); + test_compare(MEMCACHED_SUCCESS, memcached_exist(memc, test_literal_param("frog"))); + test_compare(MEMCACHED_SUCCESS, memcached_delete(memc, test_literal_param("frog"), 0)); + test_compare(MEMCACHED_NOTFOUND, memcached_exist(memc, test_literal_param("frog"))); return TEST_SUCCESS; } @@ -65,10 +65,10 @@ test_return_t memcached_exist_by_key_NOTFOUND(memcached_st *memc) test_return_t memcached_exist_by_key_SUCCESS(memcached_st *memc) { - test_compare_got(MEMCACHED_SUCCESS, memcached_set_by_key(memc, test_literal_param("master"), test_literal_param("frog"), 0, 0, 0, 0), memcached_last_error_message(memc)); - test_compare_got(MEMCACHED_SUCCESS, memcached_exist_by_key(memc, test_literal_param("master"), test_literal_param("frog")), memcached_last_error_message(memc)); - test_compare_got(MEMCACHED_SUCCESS, memcached_delete_by_key(memc, test_literal_param("master"), test_literal_param("frog"), 0), memcached_last_error_message(memc)); - test_compare_got(MEMCACHED_NOTFOUND, memcached_exist_by_key(memc, test_literal_param("master"), test_literal_param("frog")), memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, memcached_set_by_key(memc, test_literal_param("master"), test_literal_param("frog"), 0, 0, 0, 0)); + test_compare(MEMCACHED_SUCCESS, memcached_exist_by_key(memc, test_literal_param("master"), test_literal_param("frog"))); + test_compare(MEMCACHED_SUCCESS, memcached_delete_by_key(memc, test_literal_param("master"), test_literal_param("frog"), 0)); + test_compare(MEMCACHED_NOTFOUND, memcached_exist_by_key(memc, test_literal_param("master"), test_literal_param("frog"))); return TEST_SUCCESS; } diff --git a/tests/libmemcached-1.0/generate.cc b/tests/libmemcached-1.0/generate.cc index a3613ca4..59fa2b2a 100644 --- a/tests/libmemcached-1.0/generate.cc +++ b/tests/libmemcached-1.0/generate.cc @@ -105,8 +105,10 @@ test_return_t generate_data(memcached_st *memc) unsigned int check_execute= execute_set(memc, global_pairs, global_count); - test_true_hint(check_execute > (global_count / 2), - "Possible false, positive, memcached may have ejected key/value based on memory needs"); + /* Possible false, positive, memcached may have ejected key/value based on + * memory needs. */ + + test_true(check_execute > (global_count / 2)); return TEST_SUCCESS; } @@ -208,8 +210,10 @@ test_return_t get_read(memcached_st *memc) free(return_value); } } - test_true_hint(keys_returned > (global_count / 2), - "Possible false, positive, memcached may have ejected key/value based on memory needs"); + /* + Possible false, positive, memcached may have ejected key/value based on memory needs. + */ + test_true(keys_returned > (global_count / 2)); return TEST_SUCCESS; } @@ -334,8 +338,10 @@ test_return_t delete_generate(memcached_st *memc) total++; } } - test_true_hint(total > (global_count / 2), - "Possible false, positive, memcached may have ejected key/value based on memory needs"); + /* + Possible false, positive, memcached may have ejected key/value based on memory needs. + */ + test_true(total > (global_count / 2)); return TEST_SUCCESS; } @@ -353,8 +359,10 @@ test_return_t delete_buffer_generate(memcached_st *memc) } } - test_true_hint(total > (global_count / 2), - "Possible false, positive, memcached may have ejected key/value based on memory needs"); + /* + Possible false, positive, memcached may have ejected key/value based on memory needs. + */ + test_true(total > (global_count / 2)); return TEST_SUCCESS; } diff --git a/tests/libmemcached-1.0/mem_functions.cc b/tests/libmemcached-1.0/mem_functions.cc index 9750d44d..199ee01b 100644 --- a/tests/libmemcached-1.0/mem_functions.cc +++ b/tests/libmemcached-1.0/mem_functions.cc @@ -521,7 +521,7 @@ test_return_t set_test(memcached_st *memc) test_literal_param("foo"), test_literal_param("when we sanitize"), time_t(0), (uint32_t)0); - test_true_got(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED, memcached_last_error_message(memc)); + test_true(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED); return TEST_SUCCESS; } @@ -987,7 +987,7 @@ test_return_t bad_key_test(memcached_st *memc) size_t string_length; char *string= memcached_get(memc_clone, key, strlen(key), &string_length, &flags, &rc); - test_compare_got(MEMCACHED_NOTFOUND, rc, memcached_strerror(NULL, rc)); + test_compare(MEMCACHED_NOTFOUND, rc); test_zero(string_length); test_false(string); } @@ -1514,14 +1514,14 @@ test_return_t mget_result_test(memcached_st *memc) while ((results= memcached_fetch_result(memc, &results_obj, &rc))) { test_true(false); /* We should never see a value returned */ }; test_false(results); - test_compare_got(MEMCACHED_NOTFOUND, rc, memcached_strerror(NULL, rc)); + test_compare(MEMCACHED_NOTFOUND, rc); for (uint32_t x= 0; x < 3; x++) { rc= memcached_set(memc, keys[x], key_length[x], keys[x], key_length[x], (time_t)50, (uint32_t)9); - test_true_got(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED, memcached_strerror(NULL, rc)); + test_true(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED); } test_compare(MEMCACHED_SUCCESS, @@ -1563,14 +1563,14 @@ test_return_t mget_result_alloc_test(memcached_st *memc) test_true(results); } test_false(results); - test_compare_got(MEMCACHED_NOTFOUND, rc, memcached_strerror(NULL, rc)); + test_compare(MEMCACHED_NOTFOUND, rc); for (uint32_t x= 0; x < 3; x++) { rc= memcached_set(memc, keys[x], key_length[x], keys[x], key_length[x], (time_t)50, (uint32_t)9); - test_true_got(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED, memcached_strerror(NULL, rc)); + test_true(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED); } test_compare(MEMCACHED_SUCCESS, @@ -1652,7 +1652,7 @@ test_return_t mget_test(memcached_st *memc) rc= memcached_set(memc, keys[x], key_length[x], keys[x], key_length[x], (time_t)50, (uint32_t)9); - test_true_got(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED, memcached_strerror(NULL, rc)); + test_true(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED); } test_compare(MEMCACHED_SUCCESS, memcached_mget(memc, keys, key_length, 3)); @@ -1852,7 +1852,7 @@ test_return_t memcached_fetch_result_NOT_FOUND(memcached_st *memc) memcached_result_st *result= memcached_fetch_result(memc, NULL, &rc); test_null(result); - test_compare_got(MEMCACHED_NOTFOUND, rc, memcached_strerror(NULL, rc)); + test_compare(MEMCACHED_NOTFOUND, rc); memcached_result_free(result); @@ -2146,7 +2146,7 @@ test_return_t user_supplied_bug6(memcached_st *memc) count++; } test_zero(count); - test_compare_got(MEMCACHED_NOTFOUND, rc, memcached_strerror(NULL, rc)); + test_compare(MEMCACHED_NOTFOUND, rc); for (uint32_t x= 0; x < test_array_length(keys); x++) { @@ -2325,9 +2325,8 @@ test_return_t user_supplied_bug10(memcached_st *memc) &value[0], value.size(), 0, 0); - test_true_got((rc == MEMCACHED_SUCCESS or rc == MEMCACHED_WRITE_FAILURE or rc == MEMCACHED_BUFFERED or rc == MEMCACHED_TIMEOUT or rc == MEMCACHED_CONNECTION_FAILURE - or rc == MEMCACHED_SERVER_TEMPORARILY_DISABLED), - memcached_strerror(NULL, rc)); + test_true((rc == MEMCACHED_SUCCESS or rc == MEMCACHED_WRITE_FAILURE or rc == MEMCACHED_BUFFERED or rc == MEMCACHED_TIMEOUT or rc == MEMCACHED_CONNECTION_FAILURE + or rc == MEMCACHED_SERVER_TEMPORARILY_DISABLED)); if (rc == MEMCACHED_WRITE_FAILURE or rc == MEMCACHED_TIMEOUT) { @@ -2480,7 +2479,7 @@ test_return_t user_supplied_bug14(memcached_st *memc) test_compare(string_length, current_length); char buffer[1024]; snprintf(buffer, sizeof(buffer), "%u", uint32_t(string_length)); - test_memcmp_hint(string, &value[0], string_length, buffer); + test_memcmp(string, &value[0], string_length); free(string); } @@ -2526,10 +2525,9 @@ test_return_t user_supplied_bug15(memcached_st *memc) /* Check the return sizes on FLAGS to make sure it stores 32bit unsigned values correctly */ test_return_t user_supplied_bug16(memcached_st *memc) { - test_compare_hint(MEMCACHED_SUCCESS, memcached_set(memc, test_literal_param("mykey"), - NULL, 0, - (time_t)0, UINT32_MAX), - memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, memcached_set(memc, test_literal_param("mykey"), + NULL, 0, + (time_t)0, UINT32_MAX)); size_t length; @@ -3314,7 +3312,7 @@ test_return_t analyzer_test(memcached_st *memc) test_return_t util_version_test(memcached_st *memc) { - test_compare_hint(MEMCACHED_SUCCESS, memcached_version(memc), memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, memcached_version(memc)); test_true(libmemcached_util_version_check(memc, 0, 0, 0)); bool if_successful= libmemcached_util_version_check(memc, 9, 9, 9); diff --git a/tests/libmemcached-1.0/memcached_get.cc b/tests/libmemcached-1.0/memcached_get.cc index 1a6e2a70..1db1a7e3 100644 --- a/tests/libmemcached-1.0/memcached_get.cc +++ b/tests/libmemcached-1.0/memcached_get.cc @@ -51,7 +51,7 @@ test_return_t get_test(memcached_st *memc) memcached_return_t rc= memcached_delete(memc, test_literal_param(__func__), time_t(0)); - test_true_hint(rc == MEMCACHED_BUFFERED or rc == MEMCACHED_NOTFOUND, memcached_last_error_message(memc)); + test_true(rc == MEMCACHED_BUFFERED or rc == MEMCACHED_NOTFOUND); test_compare(query_id +1, memcached_query_id(memc)); size_t string_length; @@ -60,7 +60,7 @@ test_return_t get_test(memcached_st *memc) test_literal_param(__func__), &string_length, &flags, &rc); - test_compare_got(MEMCACHED_NOTFOUND, rc, memcached_last_error_message(memc)); + test_compare(MEMCACHED_NOTFOUND, rc); test_false(string_length); test_false(string); @@ -90,8 +90,8 @@ test_return_t get_test2(memcached_st *memc) &string_length, &flags, &rc); test_compare(query_id +1, memcached_query_id(memc)); - test_compare_got(MEMCACHED_SUCCESS, rc, memcached_strerror(NULL, rc)); - test_compare_got(MEMCACHED_SUCCESS, memcached_last_error(memc), memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, rc); + test_compare(MEMCACHED_SUCCESS, memcached_last_error(memc)); test_true(string); test_compare(strlen(value), string_length); test_memcmp(string, value, string_length); @@ -112,12 +112,11 @@ test_return_t get_test3(memcached_st *memc) value.push_back(char(x % 127)); } - test_compare_hint(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param(__func__), - &value[0], value.size(), - time_t(0), uint32_t(0)), - memcached_last_error_message(memc)); + test_compare(return_value_based_on_buffering(memc), + memcached_set(memc, + test_literal_param(__func__), + &value[0], value.size(), + time_t(0), uint32_t(0))); size_t string_length; uint32_t flags; @@ -147,12 +146,11 @@ test_return_t get_test4(memcached_st *memc) value.push_back(char(x % 127)); } - test_compare_hint(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param(__func__), - &value[0], value.size(), - time_t(0), uint32_t(0)), - memcached_last_error_message(memc)); + test_compare(return_value_based_on_buffering(memc), + memcached_set(memc, + test_literal_param(__func__), + &value[0], value.size(), + time_t(0), uint32_t(0))); for (uint32_t x= 0; x < 10; x++) { diff --git a/tests/libmemcached-1.0/pool.cc b/tests/libmemcached-1.0/pool.cc index 6156ecad..9da4a0f9 100644 --- a/tests/libmemcached-1.0/pool.cc +++ b/tests/libmemcached-1.0/pool.cc @@ -64,20 +64,19 @@ using namespace libtest; test_return_t memcached_pool_test(memcached_st *) { - memcached_return_t rc; const char *config_string= "--SERVER=host10.example.com --SERVER=host11.example.com --SERVER=host10.example.com --POOL-MIN=10 --POOL-MAX=32"; char buffer[2048]; - rc= libmemcached_check_configuration(config_string, sizeof(config_string) -1, buffer, sizeof(buffer)); - test_true_got(rc != MEMCACHED_SUCCESS, buffer); + test_compare(libmemcached_check_configuration(config_string, sizeof(config_string) -1, buffer, sizeof(buffer)), MEMCACHED_PARSE_ERROR); memcached_pool_st* pool= memcached_pool(config_string, strlen(config_string)); - test_true_got(pool, strerror(errno)); + test_true(pool); + memcached_return_t rc; memcached_st *memc= memcached_pool_pop(pool, false, &rc); - test_true(rc == MEMCACHED_SUCCESS); + test_compare(rc, MEMCACHED_SUCCESS); test_true(memc); /* diff --git a/tests/libmemcached-1.0/stat.cc b/tests/libmemcached-1.0/stat.cc index 209b70a6..5a16495e 100644 --- a/tests/libmemcached-1.0/stat.cc +++ b/tests/libmemcached-1.0/stat.cc @@ -70,9 +70,8 @@ static memcached_return_t item_counter(memcached_server_instance_st , test_return_t memcached_stat_TEST(memcached_st *memc) { uint64_t counter= 0; - test_compare_got(MEMCACHED_INVALID_ARGUMENTS, - memcached_stat_execute(memc, "BAD_ARG_VALUE", item_counter, &counter), - memcached_last_error_message(memc)); + test_compare(MEMCACHED_INVALID_ARGUMENTS, + memcached_stat_execute(memc, "BAD_ARG_VALUE", item_counter, &counter)); return TEST_SUCCESS; } @@ -91,19 +90,17 @@ test_return_t memcached_stat_TEST2(memcached_st *memc) test_true(length > 0); - test_compare_hint(MEMCACHED_SUCCESS, - memcached_set(memc, key, length, - NULL, 0, // Zero length values - time_t(0), uint32_t(0)), - memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, + memcached_set(memc, key, length, + NULL, 0, // Zero length values + time_t(0), uint32_t(0))); } memcached_quit(memc); uint64_t counter= 0; - test_compare_got(MEMCACHED_SUCCESS, - memcached_stat_execute(memc, NULL, item_counter, &counter), - memcached_last_error_message(memc)); - test_true_got(counter > 0, counter); + test_compare(MEMCACHED_SUCCESS, + memcached_stat_execute(memc, NULL, item_counter, &counter)); + test_true(counter); return TEST_SUCCESS; } diff --git a/tests/libmemcached-1.0/touch.cc b/tests/libmemcached-1.0/touch.cc index 425e308c..07f0096f 100644 --- a/tests/libmemcached-1.0/touch.cc +++ b/tests/libmemcached-1.0/touch.cc @@ -91,7 +91,7 @@ test_return_t test_memcached_touch(memcached_st *memc) test_skip(false ,memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL)); rc= memcached_touch(memc, test_literal_param(__func__), 60 *60 *24 *60); - test_compare_hint(MEMCACHED_SUCCESS, rc, memcached_last_error_message(memc)); + test_compare(MEMCACHED_SUCCESS, rc); test_compare(MEMCACHED_NOTFOUND, memcached_exist(memc, test_literal_param(__func__))); diff --git a/tests/libmemcached-1.0/virtual_buckets.cc b/tests/libmemcached-1.0/virtual_buckets.cc index ec8225dc..82195e80 100644 --- a/tests/libmemcached-1.0/virtual_buckets.cc +++ b/tests/libmemcached-1.0/virtual_buckets.cc @@ -136,7 +136,7 @@ test_return_t virtual_back_map(memcached_st *) char buffer[1024]; snprintf(buffer, sizeof(buffer), "%.*s:%lu Got/Expected %u == %u", (int)ptr->key.size, ptr->key.c_str, (unsigned long)ptr->key.size, server_idx, ptr->server_id); - test_true_got(server_idx == ptr->server_id, buffer); + test_compare(server_idx, ptr->server_id); } memcached_server_list_free(server_pool); diff --git a/tests/runner.h b/tests/runner.h index fcce6e2f..0d1a767d 100644 --- a/tests/runner.h +++ b/tests/runner.h @@ -105,10 +105,9 @@ private: { 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_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())); -- 2.30.2 From 133c8ed7290daf0143bb14fba174be39996646a6 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Thu, 5 Jul 2012 01:37:32 -0400 Subject: [PATCH 16/16] Final bits for 1.0.9 --- ChangeLog | 6 ++++++ configure.ac | 4 ++-- docs/man/hashkit_clone.3 | 2 +- docs/man/hashkit_crc32.3 | 2 +- docs/man/hashkit_create.3 | 2 +- docs/man/hashkit_fnv1_32.3 | 2 +- docs/man/hashkit_fnv1_64.3 | 2 +- docs/man/hashkit_fnv1a_32.3 | 2 +- docs/man/hashkit_fnv1a_64.3 | 2 +- docs/man/hashkit_free.3 | 2 +- docs/man/hashkit_functions.3 | 2 +- docs/man/hashkit_hsieh.3 | 2 +- docs/man/hashkit_is_allocated.3 | 2 +- docs/man/hashkit_jenkins.3 | 2 +- docs/man/hashkit_md5.3 | 2 +- docs/man/hashkit_murmur.3 | 2 +- docs/man/hashkit_value.3 | 2 +- docs/man/libhashkit.3 | 2 +- docs/man/libmemcached.3 | 2 +- docs/man/libmemcached_check_configuration.3 | 2 +- docs/man/libmemcached_configuration.3 | 2 +- docs/man/libmemcached_examples.3 | 2 +- docs/man/libmemcachedutil.3 | 2 +- docs/man/memaslap.1 | 2 +- docs/man/memcached.3 | 2 +- docs/man/memcached_add.3 | 2 +- docs/man/memcached_add_by_key.3 | 2 +- docs/man/memcached_analyze.3 | 2 +- docs/man/memcached_append.3 | 2 +- docs/man/memcached_append_by_key.3 | 2 +- docs/man/memcached_auto.3 | 2 +- docs/man/memcached_behavior.3 | 2 +- docs/man/memcached_behavior_get.3 | 2 +- docs/man/memcached_behavior_set.3 | 2 +- docs/man/memcached_callback.3 | 2 +- docs/man/memcached_callback_get.3 | 2 +- docs/man/memcached_callback_set.3 | 2 +- docs/man/memcached_cas.3 | 2 +- docs/man/memcached_cas_by_key.3 | 2 +- docs/man/memcached_clone.3 | 2 +- docs/man/memcached_create.3 | 2 +- docs/man/memcached_decrement.3 | 2 +- docs/man/memcached_decrement_with_initial.3 | 2 +- docs/man/memcached_delete.3 | 2 +- docs/man/memcached_delete_by_key.3 | 2 +- docs/man/memcached_destroy_sasl_auth_data.3 | 2 +- docs/man/memcached_dump.3 | 2 +- docs/man/memcached_exist.3 | 2 +- docs/man/memcached_exist_by_key.3 | 2 +- docs/man/memcached_fetch.3 | 2 +- docs/man/memcached_fetch_execute.3 | 2 +- docs/man/memcached_fetch_result.3 | 2 +- docs/man/memcached_flush.3 | 2 +- docs/man/memcached_flush_buffers.3 | 2 +- docs/man/memcached_free.3 | 2 +- docs/man/memcached_generate_hash.3 | 2 +- docs/man/memcached_generate_hash_value.3 | 2 +- docs/man/memcached_get.3 | 2 +- docs/man/memcached_get_by_key.3 | 2 +- docs/man/memcached_get_memory_allocators.3 | 2 +- docs/man/memcached_get_sasl_callbacks.3 | 2 +- docs/man/memcached_get_user_data.3 | 2 +- docs/man/memcached_increment.3 | 2 +- docs/man/memcached_increment_with_initial.3 | 2 +- docs/man/memcached_last_error_message.3 | 2 +- docs/man/memcached_lib_version.3 | 2 +- docs/man/memcached_memory_allocators.3 | 2 +- docs/man/memcached_mget.3 | 2 +- docs/man/memcached_mget_by_key.3 | 2 +- docs/man/memcached_mget_execute.3 | 2 +- docs/man/memcached_mget_execute_by_key.3 | 2 +- docs/man/memcached_pool.3 | 2 +- docs/man/memcached_pool_behavior_get.3 | 2 +- docs/man/memcached_pool_behavior_set.3 | 2 +- docs/man/memcached_pool_create.3 | 2 +- docs/man/memcached_pool_destroy.3 | 2 +- docs/man/memcached_pool_fetch.3 | 2 +- docs/man/memcached_pool_pop.3 | 2 +- docs/man/memcached_pool_push.3 | 2 +- docs/man/memcached_pool_release.3 | 2 +- docs/man/memcached_pool_st.3 | 2 +- docs/man/memcached_prepend.3 | 2 +- docs/man/memcached_prepend_by_key.3 | 2 +- docs/man/memcached_quit.3 | 2 +- docs/man/memcached_replace.3 | 2 +- docs/man/memcached_replace_by_key.3 | 2 +- docs/man/memcached_result_cas.3 | 2 +- docs/man/memcached_result_create.3 | 2 +- docs/man/memcached_result_flags.3 | 2 +- docs/man/memcached_result_free.3 | 2 +- docs/man/memcached_result_key_length.3 | 2 +- docs/man/memcached_result_key_value.3 | 2 +- docs/man/memcached_result_length.3 | 2 +- docs/man/memcached_result_st.3 | 2 +- docs/man/memcached_result_value.3 | 2 +- docs/man/memcached_return_t.3 | 2 +- docs/man/memcached_sasl.3 | 2 +- docs/man/memcached_sasl_set_auth_data.3 | 2 +- docs/man/memcached_server_add.3 | 2 +- docs/man/memcached_server_add_unix_socket.3 | 2 +- docs/man/memcached_server_count.3 | 2 +- docs/man/memcached_server_cursor.3 | 2 +- docs/man/memcached_server_list.3 | 2 +- docs/man/memcached_server_list_append.3 | 2 +- docs/man/memcached_server_list_count.3 | 2 +- docs/man/memcached_server_list_free.3 | 2 +- docs/man/memcached_server_push.3 | 2 +- docs/man/memcached_server_st.3 | 2 +- docs/man/memcached_servers.3 | 2 +- docs/man/memcached_servers_parse.3 | 2 +- docs/man/memcached_servers_reset.3 | 2 +- docs/man/memcached_set.3 | 2 +- docs/man/memcached_set_by_key.3 | 2 +- docs/man/memcached_set_encoding_key.3 | 2 +- docs/man/memcached_set_memory_allocators.3 | 2 +- docs/man/memcached_set_memory_allocators_context.3 | 2 +- docs/man/memcached_set_sasl_callbacks.3 | 2 +- docs/man/memcached_set_user_data.3 | 2 +- docs/man/memcached_stat.3 | 2 +- docs/man/memcached_stat_execute.3 | 2 +- docs/man/memcached_stat_get_keys.3 | 2 +- docs/man/memcached_stat_get_value.3 | 2 +- docs/man/memcached_stat_servername.3 | 2 +- docs/man/memcached_stats.3 | 2 +- docs/man/memcached_strerror.3 | 2 +- docs/man/memcached_touch.3 | 2 +- docs/man/memcached_touch_by_key.3 | 2 +- docs/man/memcached_user_data.3 | 2 +- docs/man/memcached_verbosity.3 | 2 +- docs/man/memcached_version.3 | 2 +- docs/man/memcapable.1 | 2 +- docs/man/memcat.1 | 2 +- docs/man/memcp.1 | 2 +- docs/man/memdump.1 | 2 +- docs/man/memerror.1 | 2 +- docs/man/memexist.1 | 2 +- docs/man/memflush.1 | 2 +- docs/man/memparse.1 | 2 +- docs/man/memping.1 | 2 +- docs/man/memrm.1 | 2 +- docs/man/memslap.1 | 2 +- docs/man/memstat.1 | 2 +- docs/man/memtouch.1 | 2 +- support/libmemcached.spec.in | 4 ++-- 144 files changed, 151 insertions(+), 145 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0b8e99d6..d3b338d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1.0.9 Wed Jul 4 22:46:19 EDT 2012 +* Faster close on socket. +* Instance allocation is now seperated from server interface. This should allow for a better preservation of ABI compliance from now on. +* Fix close on exec bug. +* Numerous other bug fixes. + 1.0.8 Tue May 22 15:06:04 EDT 2012 * Added support for setting options via ENV variable LIBMEMCACHED * Fix corner case on last used result. diff --git a/configure.ac b/configure.ac index f15cfc8e..13ecc579 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,7 @@ # Use and distribution licensed under the BSD license. See # the COPYING file in this directory for full text. -AC_INIT([libmemcached],[1.0.8],[http://libmemcached.org/]) +AC_INIT([libmemcached],[1.0.9],[http://libmemcached.org/]) AC_CONFIG_AUX_DIR(config) @@ -33,7 +33,7 @@ AC_CHECK_PROGS([LEX], ['flex'], [:]) #shared library versioning MEMCACHED_UTIL_LIBRARY_VERSION=2:0:0 MEMCACHED_PROTOCAL_LIBRARY_VERSION=0:0:0 -MEMCACHED_LIBRARY_VERSION=10:0:0 +MEMCACHED_LIBRARY_VERSION=11:0:0 # | | | # +------+ | +---+ # | | | diff --git a/docs/man/hashkit_clone.3 b/docs/man/hashkit_clone.3 index 899c683a..fce41eb7 100644 --- a/docs/man/hashkit_clone.3 +++ b/docs/man/hashkit_clone.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_CLONE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_CLONE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_clone \- libhashkit Documentation . diff --git a/docs/man/hashkit_crc32.3 b/docs/man/hashkit_crc32.3 index 2ba173f2..9e8092d4 100644 --- a/docs/man/hashkit_crc32.3 +++ b/docs/man/hashkit_crc32.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_CRC32" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_CRC32" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_crc32 \- libhashkit Documentation . diff --git a/docs/man/hashkit_create.3 b/docs/man/hashkit_create.3 index 4d85f7b0..2c8ca1b2 100644 --- a/docs/man/hashkit_create.3 +++ b/docs/man/hashkit_create.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_CREATE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_CREATE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_create \- libhashkit Documentation . diff --git a/docs/man/hashkit_fnv1_32.3 b/docs/man/hashkit_fnv1_32.3 index 1269bd35..cea6773d 100644 --- a/docs/man/hashkit_fnv1_32.3 +++ b/docs/man/hashkit_fnv1_32.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FNV1_32" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_FNV1_32" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_fnv1_32 \- libhashkit Documentation . diff --git a/docs/man/hashkit_fnv1_64.3 b/docs/man/hashkit_fnv1_64.3 index b558bd0c..68cdf036 100644 --- a/docs/man/hashkit_fnv1_64.3 +++ b/docs/man/hashkit_fnv1_64.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FNV1_64" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_FNV1_64" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_fnv1_64 \- libhashkit Documentation . diff --git a/docs/man/hashkit_fnv1a_32.3 b/docs/man/hashkit_fnv1a_32.3 index fca52fc5..fea704a8 100644 --- a/docs/man/hashkit_fnv1a_32.3 +++ b/docs/man/hashkit_fnv1a_32.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FNV1A_32" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_FNV1A_32" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_fnv1a_32 \- libhashkit Documentation . diff --git a/docs/man/hashkit_fnv1a_64.3 b/docs/man/hashkit_fnv1a_64.3 index f3faf17d..196f7e9d 100644 --- a/docs/man/hashkit_fnv1a_64.3 +++ b/docs/man/hashkit_fnv1a_64.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FNV1A_64" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_FNV1A_64" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_fnv1a_64 \- libhashkit Documentation . diff --git a/docs/man/hashkit_free.3 b/docs/man/hashkit_free.3 index fa056bc1..8ad2c886 100644 --- a/docs/man/hashkit_free.3 +++ b/docs/man/hashkit_free.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FREE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_FREE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_free \- libhashkit Documentation . diff --git a/docs/man/hashkit_functions.3 b/docs/man/hashkit_functions.3 index 00cf8020..91d62af5 100644 --- a/docs/man/hashkit_functions.3 +++ b/docs/man/hashkit_functions.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FUNCTIONS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_FUNCTIONS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_functions \- libhashkit Documentation . diff --git a/docs/man/hashkit_hsieh.3 b/docs/man/hashkit_hsieh.3 index ca33a871..45c98057 100644 --- a/docs/man/hashkit_hsieh.3 +++ b/docs/man/hashkit_hsieh.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_HSIEH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_HSIEH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_hsieh \- libhashkit Documentation . diff --git a/docs/man/hashkit_is_allocated.3 b/docs/man/hashkit_is_allocated.3 index d7d703ad..b4ceff29 100644 --- a/docs/man/hashkit_is_allocated.3 +++ b/docs/man/hashkit_is_allocated.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_IS_ALLOCATED" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_IS_ALLOCATED" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_is_allocated \- libhashkit Documentation . diff --git a/docs/man/hashkit_jenkins.3 b/docs/man/hashkit_jenkins.3 index 78b9fee4..ed597848 100644 --- a/docs/man/hashkit_jenkins.3 +++ b/docs/man/hashkit_jenkins.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_JENKINS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_JENKINS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_jenkins \- libhashkit Documentation . diff --git a/docs/man/hashkit_md5.3 b/docs/man/hashkit_md5.3 index b3cae8b7..e71f16dd 100644 --- a/docs/man/hashkit_md5.3 +++ b/docs/man/hashkit_md5.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_MD5" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_MD5" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_md5 \- libhashkit Documentation . diff --git a/docs/man/hashkit_murmur.3 b/docs/man/hashkit_murmur.3 index ffb5e076..1042c50d 100644 --- a/docs/man/hashkit_murmur.3 +++ b/docs/man/hashkit_murmur.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_MURMUR" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_MURMUR" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_murmur \- libhashkit Documentation . diff --git a/docs/man/hashkit_value.3 b/docs/man/hashkit_value.3 index f0463849..7b850190 100644 --- a/docs/man/hashkit_value.3 +++ b/docs/man/hashkit_value.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_VALUE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "HASHKIT_VALUE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME hashkit_value \- libhashkit Documentation . diff --git a/docs/man/libhashkit.3 b/docs/man/libhashkit.3 index 749ec087..451d348d 100644 --- a/docs/man/libhashkit.3 +++ b/docs/man/libhashkit.3 @@ -1,4 +1,4 @@ -.TH "LIBHASHKIT" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "LIBHASHKIT" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME libhashkit \- libhashkit Documentation . diff --git a/docs/man/libmemcached.3 b/docs/man/libmemcached.3 index c282f651..2841a28d 100644 --- a/docs/man/libmemcached.3 +++ b/docs/man/libmemcached.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHED" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "LIBMEMCACHED" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME libmemcached \- Introducing the C Client Library for memcached . diff --git a/docs/man/libmemcached_check_configuration.3 b/docs/man/libmemcached_check_configuration.3 index cb2f9900..18f989a1 100644 --- a/docs/man/libmemcached_check_configuration.3 +++ b/docs/man/libmemcached_check_configuration.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHED_CHECK_CONFIGURATION" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "LIBMEMCACHED_CHECK_CONFIGURATION" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME libmemcached_check_configuration \- libmemcached Documentation . diff --git a/docs/man/libmemcached_configuration.3 b/docs/man/libmemcached_configuration.3 index 13ab75da..a35e11b8 100644 --- a/docs/man/libmemcached_configuration.3 +++ b/docs/man/libmemcached_configuration.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHED_CONFIGURATION" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "LIBMEMCACHED_CONFIGURATION" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME libmemcached_configuration \- libmemcached Documentation . diff --git a/docs/man/libmemcached_examples.3 b/docs/man/libmemcached_examples.3 index b81db0ff..dc82bad6 100644 --- a/docs/man/libmemcached_examples.3 +++ b/docs/man/libmemcached_examples.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHED_EXAMPLES" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "LIBMEMCACHED_EXAMPLES" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME libmemcached_examples \- libmemcached Documentation . diff --git a/docs/man/libmemcachedutil.3 b/docs/man/libmemcachedutil.3 index 8bc5f841..6b4f22f9 100644 --- a/docs/man/libmemcachedutil.3 +++ b/docs/man/libmemcachedutil.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHEDUTIL" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "LIBMEMCACHEDUTIL" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME libmemcachedutil \- libmemcached Documentation . diff --git a/docs/man/memaslap.1 b/docs/man/memaslap.1 index a2b6c791..438de9d4 100644 --- a/docs/man/memaslap.1 +++ b/docs/man/memaslap.1 @@ -1,4 +1,4 @@ -.TH "MEMASLAP" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMASLAP" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memaslap \- libmemcached Documentation . diff --git a/docs/man/memcached.3 b/docs/man/memcached.3 index fa0db98a..ad603497 100644 --- a/docs/man/memcached.3 +++ b/docs/man/memcached.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached \- libmemcached Documentation . diff --git a/docs/man/memcached_add.3 b/docs/man/memcached_add.3 index 8f155177..3f159bee 100644 --- a/docs/man/memcached_add.3 +++ b/docs/man/memcached_add.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_ADD" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_ADD" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_add \- Storing and Replacing Data . diff --git a/docs/man/memcached_add_by_key.3 b/docs/man/memcached_add_by_key.3 index 1c47b3dd..efc18233 100644 --- a/docs/man/memcached_add_by_key.3 +++ b/docs/man/memcached_add_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_ADD_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_ADD_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_add_by_key \- Storing and Replacing Data . diff --git a/docs/man/memcached_analyze.3 b/docs/man/memcached_analyze.3 index c7d3ad5c..9b23f4f6 100644 --- a/docs/man/memcached_analyze.3 +++ b/docs/man/memcached_analyze.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_ANALYZE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_ANALYZE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_analyze \- libmemcached Documentation . diff --git a/docs/man/memcached_append.3 b/docs/man/memcached_append.3 index b647aa18..bca8f626 100644 --- a/docs/man/memcached_append.3 +++ b/docs/man/memcached_append.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_APPEND" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_APPEND" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_append \- Appending to or Prepending to data on the server . diff --git a/docs/man/memcached_append_by_key.3 b/docs/man/memcached_append_by_key.3 index ef72a875..691c691b 100644 --- a/docs/man/memcached_append_by_key.3 +++ b/docs/man/memcached_append_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_APPEND_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_APPEND_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_append_by_key \- Appending to or Prepending to data on the server . diff --git a/docs/man/memcached_auto.3 b/docs/man/memcached_auto.3 index 6832eb0b..23005cb8 100644 --- a/docs/man/memcached_auto.3 +++ b/docs/man/memcached_auto.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_AUTO" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_AUTO" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_auto \- Incrementing and Decrementing Values . diff --git a/docs/man/memcached_behavior.3 b/docs/man/memcached_behavior.3 index 13e0ffcf..c423c9a8 100644 --- a/docs/man/memcached_behavior.3 +++ b/docs/man/memcached_behavior.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_BEHAVIOR" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_BEHAVIOR" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_behavior \- libmemcached Documentation . diff --git a/docs/man/memcached_behavior_get.3 b/docs/man/memcached_behavior_get.3 index 1b0579e4..50d65759 100644 --- a/docs/man/memcached_behavior_get.3 +++ b/docs/man/memcached_behavior_get.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_BEHAVIOR_GET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_BEHAVIOR_GET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_behavior_get \- libmemcached Documentation . diff --git a/docs/man/memcached_behavior_set.3 b/docs/man/memcached_behavior_set.3 index 2e9b4d3e..a07a74f6 100644 --- a/docs/man/memcached_behavior_set.3 +++ b/docs/man/memcached_behavior_set.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_BEHAVIOR_SET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_BEHAVIOR_SET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_behavior_set \- libmemcached Documentation . diff --git a/docs/man/memcached_callback.3 b/docs/man/memcached_callback.3 index c502db54..4e83acaa 100644 --- a/docs/man/memcached_callback.3 +++ b/docs/man/memcached_callback.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CALLBACK" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_CALLBACK" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_callback \- libmemcached Documentation . diff --git a/docs/man/memcached_callback_get.3 b/docs/man/memcached_callback_get.3 index 4c2fd059..1375beb3 100644 --- a/docs/man/memcached_callback_get.3 +++ b/docs/man/memcached_callback_get.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CALLBACK_GET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_CALLBACK_GET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_callback_get \- libmemcached Documentation . diff --git a/docs/man/memcached_callback_set.3 b/docs/man/memcached_callback_set.3 index d96126b3..c0afc597 100644 --- a/docs/man/memcached_callback_set.3 +++ b/docs/man/memcached_callback_set.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CALLBACK_SET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_CALLBACK_SET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_callback_set \- libmemcached Documentation . diff --git a/docs/man/memcached_cas.3 b/docs/man/memcached_cas.3 index 0d180f83..10704ac9 100644 --- a/docs/man/memcached_cas.3 +++ b/docs/man/memcached_cas.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CAS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_CAS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_cas \- Working with data on the server in an atomic fashion . diff --git a/docs/man/memcached_cas_by_key.3 b/docs/man/memcached_cas_by_key.3 index 5ecd9fbc..c9d96f83 100644 --- a/docs/man/memcached_cas_by_key.3 +++ b/docs/man/memcached_cas_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CAS_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_CAS_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_cas_by_key \- Storing and Replacing Data . diff --git a/docs/man/memcached_clone.3 b/docs/man/memcached_clone.3 index d16424a7..f53698c4 100644 --- a/docs/man/memcached_clone.3 +++ b/docs/man/memcached_clone.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CLONE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_CLONE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_clone \- libmemcached Documentation . diff --git a/docs/man/memcached_create.3 b/docs/man/memcached_create.3 index d989525e..c616f50b 100644 --- a/docs/man/memcached_create.3 +++ b/docs/man/memcached_create.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CREATE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_CREATE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_create \- libmemcached Documentation . diff --git a/docs/man/memcached_decrement.3 b/docs/man/memcached_decrement.3 index 37887893..4a63cd3b 100644 --- a/docs/man/memcached_decrement.3 +++ b/docs/man/memcached_decrement.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_DECREMENT" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_DECREMENT" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_decrement \- Incrementing and Decrementing Values . diff --git a/docs/man/memcached_decrement_with_initial.3 b/docs/man/memcached_decrement_with_initial.3 index c30ad821..a8e9b3d6 100644 --- a/docs/man/memcached_decrement_with_initial.3 +++ b/docs/man/memcached_decrement_with_initial.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_DECREMENT_WITH_INITIAL" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_DECREMENT_WITH_INITIAL" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_decrement_with_initial \- Incrementing and Decrementing Values . diff --git a/docs/man/memcached_delete.3 b/docs/man/memcached_delete.3 index ae39786c..019b78ee 100644 --- a/docs/man/memcached_delete.3 +++ b/docs/man/memcached_delete.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_DELETE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_DELETE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_delete \- libmemcached Documentation . diff --git a/docs/man/memcached_delete_by_key.3 b/docs/man/memcached_delete_by_key.3 index a8bf37b6..23ab10f5 100644 --- a/docs/man/memcached_delete_by_key.3 +++ b/docs/man/memcached_delete_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_DELETE_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_DELETE_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_delete_by_key \- libmemcached Documentation . diff --git a/docs/man/memcached_destroy_sasl_auth_data.3 b/docs/man/memcached_destroy_sasl_auth_data.3 index 5292ef1f..489f713f 100644 --- a/docs/man/memcached_destroy_sasl_auth_data.3 +++ b/docs/man/memcached_destroy_sasl_auth_data.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_DESTROY_SASL_AUTH_DATA" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_DESTROY_SASL_AUTH_DATA" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_destroy_sasl_auth_data \- libmemcached Documentation . diff --git a/docs/man/memcached_dump.3 b/docs/man/memcached_dump.3 index 4306bdc7..336f00c1 100644 --- a/docs/man/memcached_dump.3 +++ b/docs/man/memcached_dump.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_DUMP" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_DUMP" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_dump \- libmemcached Documentation . diff --git a/docs/man/memcached_exist.3 b/docs/man/memcached_exist.3 index 8b4dc011..6c2f68bf 100644 --- a/docs/man/memcached_exist.3 +++ b/docs/man/memcached_exist.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_EXIST" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_EXIST" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_exist \- libmemcached Documentation . diff --git a/docs/man/memcached_exist_by_key.3 b/docs/man/memcached_exist_by_key.3 index ab326a3b..78bee9b0 100644 --- a/docs/man/memcached_exist_by_key.3 +++ b/docs/man/memcached_exist_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_EXIST_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_EXIST_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_exist_by_key \- libmemcached Documentation . diff --git a/docs/man/memcached_fetch.3 b/docs/man/memcached_fetch.3 index ed6f5fff..51701a2a 100644 --- a/docs/man/memcached_fetch.3 +++ b/docs/man/memcached_fetch.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FETCH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_FETCH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_fetch \- Retrieving data from the server . diff --git a/docs/man/memcached_fetch_execute.3 b/docs/man/memcached_fetch_execute.3 index 33f7d197..d4c84afd 100644 --- a/docs/man/memcached_fetch_execute.3 +++ b/docs/man/memcached_fetch_execute.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FETCH_EXECUTE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_FETCH_EXECUTE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_fetch_execute \- Retrieving data from the server . diff --git a/docs/man/memcached_fetch_result.3 b/docs/man/memcached_fetch_result.3 index 664856d2..4c5c0d18 100644 --- a/docs/man/memcached_fetch_result.3 +++ b/docs/man/memcached_fetch_result.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FETCH_RESULT" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_FETCH_RESULT" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_fetch_result \- Retrieving data from the server . diff --git a/docs/man/memcached_flush.3 b/docs/man/memcached_flush.3 index a3caaf8f..aee6c390 100644 --- a/docs/man/memcached_flush.3 +++ b/docs/man/memcached_flush.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FLUSH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_FLUSH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_flush \- libmemcached Documentation . diff --git a/docs/man/memcached_flush_buffers.3 b/docs/man/memcached_flush_buffers.3 index 6fedcbfc..ebb24f0f 100644 --- a/docs/man/memcached_flush_buffers.3 +++ b/docs/man/memcached_flush_buffers.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FLUSH_BUFFERS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_FLUSH_BUFFERS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_flush_buffers \- libmemcached Documentation . diff --git a/docs/man/memcached_free.3 b/docs/man/memcached_free.3 index a7476907..84d29ee1 100644 --- a/docs/man/memcached_free.3 +++ b/docs/man/memcached_free.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FREE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_FREE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_free \- libmemcached Documentation . diff --git a/docs/man/memcached_generate_hash.3 b/docs/man/memcached_generate_hash.3 index bf163982..758a2f8d 100644 --- a/docs/man/memcached_generate_hash.3 +++ b/docs/man/memcached_generate_hash.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_GENERATE_HASH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_GENERATE_HASH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_generate_hash \- Generating hash values directly . diff --git a/docs/man/memcached_generate_hash_value.3 b/docs/man/memcached_generate_hash_value.3 index 486f85e6..1f62ec15 100644 --- a/docs/man/memcached_generate_hash_value.3 +++ b/docs/man/memcached_generate_hash_value.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_GENERATE_HASH_VALUE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_GENERATE_HASH_VALUE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_generate_hash_value \- Generating hash values directly . diff --git a/docs/man/memcached_get.3 b/docs/man/memcached_get.3 index 859f310b..52648f0e 100644 --- a/docs/man/memcached_get.3 +++ b/docs/man/memcached_get.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_GET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_GET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_get \- Retrieving data from the server . diff --git a/docs/man/memcached_get_by_key.3 b/docs/man/memcached_get_by_key.3 index cd6bb73e..709cc28a 100644 --- a/docs/man/memcached_get_by_key.3 +++ b/docs/man/memcached_get_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_GET_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_GET_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_get_by_key \- Retrieving data from the server . diff --git a/docs/man/memcached_get_memory_allocators.3 b/docs/man/memcached_get_memory_allocators.3 index e047c1d1..40fd033a 100644 --- a/docs/man/memcached_get_memory_allocators.3 +++ b/docs/man/memcached_get_memory_allocators.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_GET_MEMORY_ALLOCATORS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_GET_MEMORY_ALLOCATORS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_get_memory_allocators \- libmemcached Documentation . diff --git a/docs/man/memcached_get_sasl_callbacks.3 b/docs/man/memcached_get_sasl_callbacks.3 index b966636b..5fa686e4 100644 --- a/docs/man/memcached_get_sasl_callbacks.3 +++ b/docs/man/memcached_get_sasl_callbacks.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_GET_SASL_CALLBACKS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_GET_SASL_CALLBACKS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_get_sasl_callbacks \- libmemcached Documentation . diff --git a/docs/man/memcached_get_user_data.3 b/docs/man/memcached_get_user_data.3 index ba84e28e..23b9382a 100644 --- a/docs/man/memcached_get_user_data.3 +++ b/docs/man/memcached_get_user_data.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_GET_USER_DATA" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_GET_USER_DATA" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_get_user_data \- libmemcached Documentation . diff --git a/docs/man/memcached_increment.3 b/docs/man/memcached_increment.3 index e862b5a3..e682dda6 100644 --- a/docs/man/memcached_increment.3 +++ b/docs/man/memcached_increment.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_INCREMENT" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_INCREMENT" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_increment \- Incrementing and Decrementing Values . diff --git a/docs/man/memcached_increment_with_initial.3 b/docs/man/memcached_increment_with_initial.3 index 4de765da..7b447481 100644 --- a/docs/man/memcached_increment_with_initial.3 +++ b/docs/man/memcached_increment_with_initial.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_INCREMENT_WITH_INITIAL" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_INCREMENT_WITH_INITIAL" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_increment_with_initial \- Incrementing and Decrementing Values . diff --git a/docs/man/memcached_last_error_message.3 b/docs/man/memcached_last_error_message.3 index 97d15e1b..9cd923f4 100644 --- a/docs/man/memcached_last_error_message.3 +++ b/docs/man/memcached_last_error_message.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_LAST_ERROR_MESSAGE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_LAST_ERROR_MESSAGE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_last_error_message \- libmemcached Documentation . diff --git a/docs/man/memcached_lib_version.3 b/docs/man/memcached_lib_version.3 index 5b2b9f35..f570133e 100644 --- a/docs/man/memcached_lib_version.3 +++ b/docs/man/memcached_lib_version.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_LIB_VERSION" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_LIB_VERSION" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_lib_version \- libmemcached Documentation . diff --git a/docs/man/memcached_memory_allocators.3 b/docs/man/memcached_memory_allocators.3 index ad262870..2e9adb62 100644 --- a/docs/man/memcached_memory_allocators.3 +++ b/docs/man/memcached_memory_allocators.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_MEMORY_ALLOCATORS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_MEMORY_ALLOCATORS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_memory_allocators \- libmemcached Documentation . diff --git a/docs/man/memcached_mget.3 b/docs/man/memcached_mget.3 index 9c3d09ce..0a0356a4 100644 --- a/docs/man/memcached_mget.3 +++ b/docs/man/memcached_mget.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_MGET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_MGET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_mget \- Retrieving data from the server . diff --git a/docs/man/memcached_mget_by_key.3 b/docs/man/memcached_mget_by_key.3 index c4a0cbb3..8c0a7c5b 100644 --- a/docs/man/memcached_mget_by_key.3 +++ b/docs/man/memcached_mget_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_MGET_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_MGET_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_mget_by_key \- Retrieving data from the server . diff --git a/docs/man/memcached_mget_execute.3 b/docs/man/memcached_mget_execute.3 index f020ac25..38288e91 100644 --- a/docs/man/memcached_mget_execute.3 +++ b/docs/man/memcached_mget_execute.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_MGET_EXECUTE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_MGET_EXECUTE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_mget_execute \- Retrieving data from the server . diff --git a/docs/man/memcached_mget_execute_by_key.3 b/docs/man/memcached_mget_execute_by_key.3 index 18249527..66c84bbd 100644 --- a/docs/man/memcached_mget_execute_by_key.3 +++ b/docs/man/memcached_mget_execute_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_MGET_EXECUTE_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_MGET_EXECUTE_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_mget_execute_by_key \- Retrieving data from the server . diff --git a/docs/man/memcached_pool.3 b/docs/man/memcached_pool.3 index 2c0fc1f6..a03f2ee1 100644 --- a/docs/man/memcached_pool.3 +++ b/docs/man/memcached_pool.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool \- libmemcached Documentation . diff --git a/docs/man/memcached_pool_behavior_get.3 b/docs/man/memcached_pool_behavior_get.3 index 63a6d88c..3445c3ce 100644 --- a/docs/man/memcached_pool_behavior_get.3 +++ b/docs/man/memcached_pool_behavior_get.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_BEHAVIOR_GET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL_BEHAVIOR_GET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool_behavior_get \- libmemcached Documentation . diff --git a/docs/man/memcached_pool_behavior_set.3 b/docs/man/memcached_pool_behavior_set.3 index ea25ebbd..1ed83e26 100644 --- a/docs/man/memcached_pool_behavior_set.3 +++ b/docs/man/memcached_pool_behavior_set.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_BEHAVIOR_SET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL_BEHAVIOR_SET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool_behavior_set \- libmemcached Documentation . diff --git a/docs/man/memcached_pool_create.3 b/docs/man/memcached_pool_create.3 index 8693237c..7a77f198 100644 --- a/docs/man/memcached_pool_create.3 +++ b/docs/man/memcached_pool_create.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_CREATE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL_CREATE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool_create \- libmemcached Documentation . diff --git a/docs/man/memcached_pool_destroy.3 b/docs/man/memcached_pool_destroy.3 index efcf55f1..c45f6282 100644 --- a/docs/man/memcached_pool_destroy.3 +++ b/docs/man/memcached_pool_destroy.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_DESTROY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL_DESTROY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool_destroy \- libmemcached Documentation . diff --git a/docs/man/memcached_pool_fetch.3 b/docs/man/memcached_pool_fetch.3 index 2f0a7f97..b8643d7e 100644 --- a/docs/man/memcached_pool_fetch.3 +++ b/docs/man/memcached_pool_fetch.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_FETCH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL_FETCH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool_fetch \- libmemcached Documentation . diff --git a/docs/man/memcached_pool_pop.3 b/docs/man/memcached_pool_pop.3 index 23fe701e..391d2bd2 100644 --- a/docs/man/memcached_pool_pop.3 +++ b/docs/man/memcached_pool_pop.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_POP" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL_POP" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool_pop \- libmemcached Documentation . diff --git a/docs/man/memcached_pool_push.3 b/docs/man/memcached_pool_push.3 index 19803963..825f36d9 100644 --- a/docs/man/memcached_pool_push.3 +++ b/docs/man/memcached_pool_push.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_PUSH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL_PUSH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool_push \- libmemcached Documentation . diff --git a/docs/man/memcached_pool_release.3 b/docs/man/memcached_pool_release.3 index 5225095d..134388fd 100644 --- a/docs/man/memcached_pool_release.3 +++ b/docs/man/memcached_pool_release.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_RELEASE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL_RELEASE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool_release \- libmemcached Documentation . diff --git a/docs/man/memcached_pool_st.3 b/docs/man/memcached_pool_st.3 index ba846212..2e754e9e 100644 --- a/docs/man/memcached_pool_st.3 +++ b/docs/man/memcached_pool_st.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_ST" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_POOL_ST" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_pool_st \- libmemcached Documentation . diff --git a/docs/man/memcached_prepend.3 b/docs/man/memcached_prepend.3 index 4eaf4bf0..60ce279c 100644 --- a/docs/man/memcached_prepend.3 +++ b/docs/man/memcached_prepend.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_PREPEND" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_PREPEND" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_prepend \- Appending to or Prepending to data on the server . diff --git a/docs/man/memcached_prepend_by_key.3 b/docs/man/memcached_prepend_by_key.3 index 4fc4e0d0..cda0d47e 100644 --- a/docs/man/memcached_prepend_by_key.3 +++ b/docs/man/memcached_prepend_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_PREPEND_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_PREPEND_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_prepend_by_key \- Appending to or Prepending to data on the server . diff --git a/docs/man/memcached_quit.3 b/docs/man/memcached_quit.3 index 7b11d68f..d3934dce 100644 --- a/docs/man/memcached_quit.3 +++ b/docs/man/memcached_quit.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_QUIT" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_QUIT" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_quit \- libmemcached Documentation . diff --git a/docs/man/memcached_replace.3 b/docs/man/memcached_replace.3 index 3fef9850..a8c91e30 100644 --- a/docs/man/memcached_replace.3 +++ b/docs/man/memcached_replace.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_REPLACE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_REPLACE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_replace \- Storing and Replacing Data . diff --git a/docs/man/memcached_replace_by_key.3 b/docs/man/memcached_replace_by_key.3 index 171a5140..8644b81a 100644 --- a/docs/man/memcached_replace_by_key.3 +++ b/docs/man/memcached_replace_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_REPLACE_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_REPLACE_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_replace_by_key \- Storing and Replacing Data . diff --git a/docs/man/memcached_result_cas.3 b/docs/man/memcached_result_cas.3 index 1c7c6952..851eda1d 100644 --- a/docs/man/memcached_result_cas.3 +++ b/docs/man/memcached_result_cas.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_CAS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RESULT_CAS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_result_cas \- Working with result sets . diff --git a/docs/man/memcached_result_create.3 b/docs/man/memcached_result_create.3 index d7d5be08..5d21903a 100644 --- a/docs/man/memcached_result_create.3 +++ b/docs/man/memcached_result_create.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_CREATE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RESULT_CREATE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_result_create \- Working with result sets . diff --git a/docs/man/memcached_result_flags.3 b/docs/man/memcached_result_flags.3 index ca8fea8a..cc836dc2 100644 --- a/docs/man/memcached_result_flags.3 +++ b/docs/man/memcached_result_flags.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_FLAGS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RESULT_FLAGS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_result_flags \- Working with result sets . diff --git a/docs/man/memcached_result_free.3 b/docs/man/memcached_result_free.3 index 6af3a518..b98e7cf5 100644 --- a/docs/man/memcached_result_free.3 +++ b/docs/man/memcached_result_free.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_FREE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RESULT_FREE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_result_free \- Working with result sets . diff --git a/docs/man/memcached_result_key_length.3 b/docs/man/memcached_result_key_length.3 index 5f233299..f7a773e5 100644 --- a/docs/man/memcached_result_key_length.3 +++ b/docs/man/memcached_result_key_length.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_KEY_LENGTH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RESULT_KEY_LENGTH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_result_key_length \- Working with result sets . diff --git a/docs/man/memcached_result_key_value.3 b/docs/man/memcached_result_key_value.3 index fccf719c..abf71885 100644 --- a/docs/man/memcached_result_key_value.3 +++ b/docs/man/memcached_result_key_value.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_KEY_VALUE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RESULT_KEY_VALUE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_result_key_value \- Working with result sets . diff --git a/docs/man/memcached_result_length.3 b/docs/man/memcached_result_length.3 index 6e32c0a1..ef0d106a 100644 --- a/docs/man/memcached_result_length.3 +++ b/docs/man/memcached_result_length.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_LENGTH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RESULT_LENGTH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_result_length \- Working with result sets . diff --git a/docs/man/memcached_result_st.3 b/docs/man/memcached_result_st.3 index 32fe3470..cbc83cd8 100644 --- a/docs/man/memcached_result_st.3 +++ b/docs/man/memcached_result_st.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_ST" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RESULT_ST" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_result_st \- Working with result sets . diff --git a/docs/man/memcached_result_value.3 b/docs/man/memcached_result_value.3 index 7bf16dad..b597dfc0 100644 --- a/docs/man/memcached_result_value.3 +++ b/docs/man/memcached_result_value.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_VALUE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RESULT_VALUE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_result_value \- Working with result sets . diff --git a/docs/man/memcached_return_t.3 b/docs/man/memcached_return_t.3 index c7335efb..338ac755 100644 --- a/docs/man/memcached_return_t.3 +++ b/docs/man/memcached_return_t.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RETURN_T" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_RETURN_T" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_return_t \- Return type values . diff --git a/docs/man/memcached_sasl.3 b/docs/man/memcached_sasl.3 index f6eb4570..bc359254 100644 --- a/docs/man/memcached_sasl.3 +++ b/docs/man/memcached_sasl.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SASL" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SASL" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_sasl \- libmemcached Documentation . diff --git a/docs/man/memcached_sasl_set_auth_data.3 b/docs/man/memcached_sasl_set_auth_data.3 index 02b628fc..7bf00323 100644 --- a/docs/man/memcached_sasl_set_auth_data.3 +++ b/docs/man/memcached_sasl_set_auth_data.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SASL_SET_AUTH_DATA" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SASL_SET_AUTH_DATA" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_sasl_set_auth_data \- libmemcached Documentation . diff --git a/docs/man/memcached_server_add.3 b/docs/man/memcached_server_add.3 index 715695a5..33e93bd6 100644 --- a/docs/man/memcached_server_add.3 +++ b/docs/man/memcached_server_add.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_ADD" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_ADD" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_add \- libmemcached Documentation . diff --git a/docs/man/memcached_server_add_unix_socket.3 b/docs/man/memcached_server_add_unix_socket.3 index 3003c6a7..5f1b87a2 100644 --- a/docs/man/memcached_server_add_unix_socket.3 +++ b/docs/man/memcached_server_add_unix_socket.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_ADD_UNIX_SOCKET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_ADD_UNIX_SOCKET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_add_unix_socket \- libmemcached Documentation . diff --git a/docs/man/memcached_server_count.3 b/docs/man/memcached_server_count.3 index d76ec15c..e0aa4d8a 100644 --- a/docs/man/memcached_server_count.3 +++ b/docs/man/memcached_server_count.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_COUNT" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_COUNT" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_count \- libmemcached Documentation . diff --git a/docs/man/memcached_server_cursor.3 b/docs/man/memcached_server_cursor.3 index 001e7e8f..43dfad26 100644 --- a/docs/man/memcached_server_cursor.3 +++ b/docs/man/memcached_server_cursor.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_CURSOR" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_CURSOR" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_cursor \- libmemcached Documentation . diff --git a/docs/man/memcached_server_list.3 b/docs/man/memcached_server_list.3 index b7e31b32..5d18628d 100644 --- a/docs/man/memcached_server_list.3 +++ b/docs/man/memcached_server_list.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_LIST" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_LIST" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_list \- libmemcached Documentation . diff --git a/docs/man/memcached_server_list_append.3 b/docs/man/memcached_server_list_append.3 index 07a60fa9..ec90c74b 100644 --- a/docs/man/memcached_server_list_append.3 +++ b/docs/man/memcached_server_list_append.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_LIST_APPEND" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_LIST_APPEND" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_list_append \- libmemcached Documentation . diff --git a/docs/man/memcached_server_list_count.3 b/docs/man/memcached_server_list_count.3 index 9aa25828..6737aa68 100644 --- a/docs/man/memcached_server_list_count.3 +++ b/docs/man/memcached_server_list_count.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_LIST_COUNT" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_LIST_COUNT" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_list_count \- libmemcached Documentation . diff --git a/docs/man/memcached_server_list_free.3 b/docs/man/memcached_server_list_free.3 index 2957ed6d..cc17e3af 100644 --- a/docs/man/memcached_server_list_free.3 +++ b/docs/man/memcached_server_list_free.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_LIST_FREE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_LIST_FREE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_list_free \- libmemcached Documentation . diff --git a/docs/man/memcached_server_push.3 b/docs/man/memcached_server_push.3 index aaba196d..bd899db0 100644 --- a/docs/man/memcached_server_push.3 +++ b/docs/man/memcached_server_push.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_PUSH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_PUSH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_push \- libmemcached Documentation . diff --git a/docs/man/memcached_server_st.3 b/docs/man/memcached_server_st.3 index e3ece149..dce28860 100644 --- a/docs/man/memcached_server_st.3 +++ b/docs/man/memcached_server_st.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_ST" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVER_ST" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_server_st \- libmemcached Documentation . diff --git a/docs/man/memcached_servers.3 b/docs/man/memcached_servers.3 index 3499d803..01ac4383 100644 --- a/docs/man/memcached_servers.3 +++ b/docs/man/memcached_servers.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVERS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVERS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_servers \- libmemcached Documentation . diff --git a/docs/man/memcached_servers_parse.3 b/docs/man/memcached_servers_parse.3 index 11c46157..f7118305 100644 --- a/docs/man/memcached_servers_parse.3 +++ b/docs/man/memcached_servers_parse.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVERS_PARSE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVERS_PARSE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_servers_parse \- libmemcached Documentation . diff --git a/docs/man/memcached_servers_reset.3 b/docs/man/memcached_servers_reset.3 index f745df2e..108d984a 100644 --- a/docs/man/memcached_servers_reset.3 +++ b/docs/man/memcached_servers_reset.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVERS_RESET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SERVERS_RESET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_servers_reset \- libmemcached Documentation . diff --git a/docs/man/memcached_set.3 b/docs/man/memcached_set.3 index 4711b319..26bdbc2a 100644 --- a/docs/man/memcached_set.3 +++ b/docs/man/memcached_set.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SET" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SET" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_set \- Storing and Replacing Data . diff --git a/docs/man/memcached_set_by_key.3 b/docs/man/memcached_set_by_key.3 index 869c4ba5..d259f523 100644 --- a/docs/man/memcached_set_by_key.3 +++ b/docs/man/memcached_set_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SET_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SET_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_set_by_key \- Storing and Replacing Data . diff --git a/docs/man/memcached_set_encoding_key.3 b/docs/man/memcached_set_encoding_key.3 index 73b47a00..dacfc4fe 100644 --- a/docs/man/memcached_set_encoding_key.3 +++ b/docs/man/memcached_set_encoding_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SET_ENCODING_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SET_ENCODING_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_set_encoding_key \- libmemcached Documentation . diff --git a/docs/man/memcached_set_memory_allocators.3 b/docs/man/memcached_set_memory_allocators.3 index 56d4ac86..799cc50d 100644 --- a/docs/man/memcached_set_memory_allocators.3 +++ b/docs/man/memcached_set_memory_allocators.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SET_MEMORY_ALLOCATORS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SET_MEMORY_ALLOCATORS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_set_memory_allocators \- libmemcached Documentation . diff --git a/docs/man/memcached_set_memory_allocators_context.3 b/docs/man/memcached_set_memory_allocators_context.3 index 899d28a4..9445bb59 100644 --- a/docs/man/memcached_set_memory_allocators_context.3 +++ b/docs/man/memcached_set_memory_allocators_context.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SET_MEMORY_ALLOCATORS_CONTEXT" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SET_MEMORY_ALLOCATORS_CONTEXT" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_set_memory_allocators_context \- libmemcached Documentation . diff --git a/docs/man/memcached_set_sasl_callbacks.3 b/docs/man/memcached_set_sasl_callbacks.3 index 946a1923..194a4a44 100644 --- a/docs/man/memcached_set_sasl_callbacks.3 +++ b/docs/man/memcached_set_sasl_callbacks.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SET_SASL_CALLBACKS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SET_SASL_CALLBACKS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_set_sasl_callbacks \- libmemcached Documentation . diff --git a/docs/man/memcached_set_user_data.3 b/docs/man/memcached_set_user_data.3 index 131f916a..5167d836 100644 --- a/docs/man/memcached_set_user_data.3 +++ b/docs/man/memcached_set_user_data.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SET_USER_DATA" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_SET_USER_DATA" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_set_user_data \- libmemcached Documentation . diff --git a/docs/man/memcached_stat.3 b/docs/man/memcached_stat.3 index ed219fed..810aa8ab 100644 --- a/docs/man/memcached_stat.3 +++ b/docs/man/memcached_stat.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STAT" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_STAT" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_stat \- libmemcached Documentation . diff --git a/docs/man/memcached_stat_execute.3 b/docs/man/memcached_stat_execute.3 index 0494dcba..5ef3855a 100644 --- a/docs/man/memcached_stat_execute.3 +++ b/docs/man/memcached_stat_execute.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STAT_EXECUTE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_STAT_EXECUTE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_stat_execute \- libmemcached Documentation . diff --git a/docs/man/memcached_stat_get_keys.3 b/docs/man/memcached_stat_get_keys.3 index 079db63b..f2adedaa 100644 --- a/docs/man/memcached_stat_get_keys.3 +++ b/docs/man/memcached_stat_get_keys.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STAT_GET_KEYS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_STAT_GET_KEYS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_stat_get_keys \- libmemcached Documentation . diff --git a/docs/man/memcached_stat_get_value.3 b/docs/man/memcached_stat_get_value.3 index 656a4af1..5a9042c0 100644 --- a/docs/man/memcached_stat_get_value.3 +++ b/docs/man/memcached_stat_get_value.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STAT_GET_VALUE" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_STAT_GET_VALUE" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_stat_get_value \- libmemcached Documentation . diff --git a/docs/man/memcached_stat_servername.3 b/docs/man/memcached_stat_servername.3 index 92b1ef50..b96e94c8 100644 --- a/docs/man/memcached_stat_servername.3 +++ b/docs/man/memcached_stat_servername.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STAT_SERVERNAME" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_STAT_SERVERNAME" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_stat_servername \- libmemcached Documentation . diff --git a/docs/man/memcached_stats.3 b/docs/man/memcached_stats.3 index 34b90fde..b8b2bade 100644 --- a/docs/man/memcached_stats.3 +++ b/docs/man/memcached_stats.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STATS" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_STATS" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_stats \- libmemcached Documentation . diff --git a/docs/man/memcached_strerror.3 b/docs/man/memcached_strerror.3 index 6f0a8ac1..6f6ae9b6 100644 --- a/docs/man/memcached_strerror.3 +++ b/docs/man/memcached_strerror.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STRERROR" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_STRERROR" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_strerror \- libmemcached Documentation . diff --git a/docs/man/memcached_touch.3 b/docs/man/memcached_touch.3 index ea0caa67..dc6af2dc 100644 --- a/docs/man/memcached_touch.3 +++ b/docs/man/memcached_touch.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_TOUCH" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_TOUCH" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_touch \- libmemcached Documentation . diff --git a/docs/man/memcached_touch_by_key.3 b/docs/man/memcached_touch_by_key.3 index f0111aa8..45eaa0f3 100644 --- a/docs/man/memcached_touch_by_key.3 +++ b/docs/man/memcached_touch_by_key.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_TOUCH_BY_KEY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_TOUCH_BY_KEY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_touch_by_key \- libmemcached Documentation . diff --git a/docs/man/memcached_user_data.3 b/docs/man/memcached_user_data.3 index 32db226f..4414f816 100644 --- a/docs/man/memcached_user_data.3 +++ b/docs/man/memcached_user_data.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_USER_DATA" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_USER_DATA" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_user_data \- libmemcached Documentation . diff --git a/docs/man/memcached_verbosity.3 b/docs/man/memcached_verbosity.3 index d2dcea57..4e79b21f 100644 --- a/docs/man/memcached_verbosity.3 +++ b/docs/man/memcached_verbosity.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_VERBOSITY" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_VERBOSITY" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_verbosity \- libmemcached Documentation . diff --git a/docs/man/memcached_version.3 b/docs/man/memcached_version.3 index a5ff6556..9234804b 100644 --- a/docs/man/memcached_version.3 +++ b/docs/man/memcached_version.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_VERSION" "3" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCACHED_VERSION" "3" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcached_version \- libmemcached Documentation . diff --git a/docs/man/memcapable.1 b/docs/man/memcapable.1 index b0179f69..9d554067 100644 --- a/docs/man/memcapable.1 +++ b/docs/man/memcapable.1 @@ -1,4 +1,4 @@ -.TH "MEMCAPABLE" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCAPABLE" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcapable \- libmemcached Documentation . diff --git a/docs/man/memcat.1 b/docs/man/memcat.1 index 3a1b1b3c..4c5c88d4 100644 --- a/docs/man/memcat.1 +++ b/docs/man/memcat.1 @@ -1,4 +1,4 @@ -.TH "MEMCAT" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCAT" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcat \- libmemcached Documentation . diff --git a/docs/man/memcp.1 b/docs/man/memcp.1 index 924f18a3..dae3dea4 100644 --- a/docs/man/memcp.1 +++ b/docs/man/memcp.1 @@ -1,4 +1,4 @@ -.TH "MEMCP" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMCP" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memcp \- libmemcached Documentation . diff --git a/docs/man/memdump.1 b/docs/man/memdump.1 index ce907a82..c79aa67a 100644 --- a/docs/man/memdump.1 +++ b/docs/man/memdump.1 @@ -1,4 +1,4 @@ -.TH "MEMDUMP" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMDUMP" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memdump \- libmemcached Documentation . diff --git a/docs/man/memerror.1 b/docs/man/memerror.1 index 8db9b1d7..829dd1cc 100644 --- a/docs/man/memerror.1 +++ b/docs/man/memerror.1 @@ -1,4 +1,4 @@ -.TH "MEMERROR" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMERROR" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memerror \- libmemcached Documentation . diff --git a/docs/man/memexist.1 b/docs/man/memexist.1 index bcf20058..07c2a647 100644 --- a/docs/man/memexist.1 +++ b/docs/man/memexist.1 @@ -1,4 +1,4 @@ -.TH "MEMEXIST" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMEXIST" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memexist \- libmemcached Documentation . diff --git a/docs/man/memflush.1 b/docs/man/memflush.1 index 775901a7..90d8e770 100644 --- a/docs/man/memflush.1 +++ b/docs/man/memflush.1 @@ -1,4 +1,4 @@ -.TH "MEMFLUSH" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMFLUSH" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memflush \- libmemcached Documentation . diff --git a/docs/man/memparse.1 b/docs/man/memparse.1 index 5191f4d8..ab4d4a35 100644 --- a/docs/man/memparse.1 +++ b/docs/man/memparse.1 @@ -1,4 +1,4 @@ -.TH "MEMPARSE" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMPARSE" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memparse \- libmemcached Documentation . diff --git a/docs/man/memping.1 b/docs/man/memping.1 index 076bc165..2bce2b64 100644 --- a/docs/man/memping.1 +++ b/docs/man/memping.1 @@ -1,4 +1,4 @@ -.TH "MEMPING" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMPING" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memping \- libmemcached Documentation . diff --git a/docs/man/memrm.1 b/docs/man/memrm.1 index 62916dd8..4f4ac0ec 100644 --- a/docs/man/memrm.1 +++ b/docs/man/memrm.1 @@ -1,4 +1,4 @@ -.TH "MEMRM" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMRM" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memrm \- libmemcached Documentation . diff --git a/docs/man/memslap.1 b/docs/man/memslap.1 index c5a603c4..f7178490 100644 --- a/docs/man/memslap.1 +++ b/docs/man/memslap.1 @@ -1,4 +1,4 @@ -.TH "MEMSLAP" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMSLAP" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memslap \- libmemcached Documentation . diff --git a/docs/man/memstat.1 b/docs/man/memstat.1 index ea6735ae..8479d8f8 100644 --- a/docs/man/memstat.1 +++ b/docs/man/memstat.1 @@ -1,4 +1,4 @@ -.TH "MEMSTAT" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMSTAT" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memstat \- libmemcached Documentation . diff --git a/docs/man/memtouch.1 b/docs/man/memtouch.1 index b527529f..dd278c81 100644 --- a/docs/man/memtouch.1 +++ b/docs/man/memtouch.1 @@ -1,4 +1,4 @@ -.TH "MEMTOUCH" "1" "May 31, 2012" "1.0.8" "libmemcached" +.TH "MEMTOUCH" "1" "July 05, 2012" "1.0.9" "libmemcached" .SH NAME memtouch \- libmemcached Documentation . diff --git a/support/libmemcached.spec.in b/support/libmemcached.spec.in index 1a1bd356..b0aee33a 100644 --- a/support/libmemcached.spec.in +++ b/support/libmemcached.spec.in @@ -119,11 +119,11 @@ you will need to install %{name}-devel. %exclude %{_libdir}/libmemcachedutil.a %exclude %{_libdir}/libmemcachedprotocol.a %{_libdir}/libhashkit.so.2.0.0 -%{_libdir}/libmemcached.so.10.0.0 +%{_libdir}/libmemcached.so.11.0.0 %{_libdir}/libmemcachedutil.so.2.0.0 %{_libdir}/libmemcachedprotocol.so.0.0.0 %{_libdir}/libhashkit.so.2 -%{_libdir}/libmemcached.so.10 +%{_libdir}/libmemcached.so.11 %{_libdir}/libmemcachedprotocol.so.0 %{_libdir}/libmemcachedutil.so.2 %{_mandir}/man1/memaslap.1.gz -- 2.30.2