From: Continuous Integration Date: Tue, 17 Apr 2012 18:04:21 +0000 (-0700) Subject: jenkins-promote-staging-trunk-libmemcached-10 X-Git-Tag: 1.0.7~7 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=941deb278c78654f9cfeda6f343c79e2f10b746a;hp=1dff98bcffc7555e0255af25f7de26cb8eb42d32;p=m6w6%2Flibmemcached jenkins-promote-staging-trunk-libmemcached-10 --- diff --git a/clients/generator.cc b/clients/generator.cc index 011ed3a4..c62f9a32 100644 --- a/clients/generator.cc +++ b/clients/generator.cc @@ -44,7 +44,9 @@ static void get_random_string(char *buffer, size_t size) void pairs_free(pairs_st *pairs) { if (pairs == NULL) + { return; + } /* We free until we hit the null pair we stores during creation */ for (uint32_t x= 0; pairs[x].key; x++) diff --git a/configure.ac b/configure.ac index de2bc881..19c54d5c 100644 --- a/configure.ac +++ b/configure.ac @@ -71,6 +71,7 @@ m4_include([memcached/version.m4]) AM_CONDITIONAL(BUILDING_LIBMEMCACHED, true) AM_CONDITIONAL(HAVE_LIBMEMCACHED, false) +AM_CONDITIONAL(HAVE_LIBDRIZZLE, false) AC_DEFINE([HAVE_LIBMEMCACHED], [1], [Enables libmemcached Support]) AM_CONDITIONAL(BUILDING_GEARMAN, false) @@ -218,6 +219,7 @@ AS_IF([test "x$ac_cv_header_atomic_h" = "xyes"],[ AC_DEFINE([HAVE_LIBDRIZZLE], [0], [Support for libdrizzle]) AC_DEFINE([HAVE_DRIZZLED_BINARY], [0], [Support for DrizzleD]) +AC_DEFINE([DRIZZLED_BINARY], [0], [Support for DrizzleD]) AC_DEFINE([GEARMAND_BLOBSLAP_WORKER], [0], [Support for Gearman Blobslap worker]) AC_DEFINE([HAVE_LIBPQ], [0], [Support for Postgres]) AC_DEFINE([HAVE_LIBCURL], [0], [Support for libcurl]) diff --git a/docs/man/hashkit_clone.3 b/docs/man/hashkit_clone.3 index d706c110..52f2e0a3 100644 --- a/docs/man/hashkit_clone.3 +++ b/docs/man/hashkit_clone.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_CLONE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_CLONE" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_clone \- libhashkit Documentation . diff --git a/docs/man/hashkit_crc32.3 b/docs/man/hashkit_crc32.3 index 77837c2b..5e791646 100644 --- a/docs/man/hashkit_crc32.3 +++ b/docs/man/hashkit_crc32.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_CRC32" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_CRC32" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_crc32 \- libhashkit Documentation . diff --git a/docs/man/hashkit_create.3 b/docs/man/hashkit_create.3 index d4018138..e549bf4d 100644 --- a/docs/man/hashkit_create.3 +++ b/docs/man/hashkit_create.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_CREATE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_CREATE" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_create \- libhashkit Documentation . diff --git a/docs/man/hashkit_fnv1_32.3 b/docs/man/hashkit_fnv1_32.3 index 5f473ebb..9e25c8b6 100644 --- a/docs/man/hashkit_fnv1_32.3 +++ b/docs/man/hashkit_fnv1_32.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FNV1_32" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_FNV1_32" "3" "April 17, 2012" "1.0.6" "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 132add2f..1795f4ad 100644 --- a/docs/man/hashkit_fnv1_64.3 +++ b/docs/man/hashkit_fnv1_64.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FNV1_64" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_FNV1_64" "3" "April 17, 2012" "1.0.6" "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 409a8b99..0097b7d3 100644 --- a/docs/man/hashkit_fnv1a_32.3 +++ b/docs/man/hashkit_fnv1a_32.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FNV1A_32" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_FNV1A_32" "3" "April 17, 2012" "1.0.6" "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 a2b423a8..d5139b90 100644 --- a/docs/man/hashkit_fnv1a_64.3 +++ b/docs/man/hashkit_fnv1a_64.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FNV1A_64" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_FNV1A_64" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_fnv1a_64 \- libhashkit Documentation . diff --git a/docs/man/hashkit_free.3 b/docs/man/hashkit_free.3 index a0048b39..fb2df5ec 100644 --- a/docs/man/hashkit_free.3 +++ b/docs/man/hashkit_free.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FREE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_FREE" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_free \- libhashkit Documentation . diff --git a/docs/man/hashkit_functions.3 b/docs/man/hashkit_functions.3 index a3f911bc..260948ec 100644 --- a/docs/man/hashkit_functions.3 +++ b/docs/man/hashkit_functions.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_FUNCTIONS" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_FUNCTIONS" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_functions \- libhashkit Documentation . diff --git a/docs/man/hashkit_hsieh.3 b/docs/man/hashkit_hsieh.3 index 955fe9ba..c415db1e 100644 --- a/docs/man/hashkit_hsieh.3 +++ b/docs/man/hashkit_hsieh.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_HSIEH" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_HSIEH" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_hsieh \- libhashkit Documentation . diff --git a/docs/man/hashkit_is_allocated.3 b/docs/man/hashkit_is_allocated.3 index 249e5dd0..004831da 100644 --- a/docs/man/hashkit_is_allocated.3 +++ b/docs/man/hashkit_is_allocated.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_IS_ALLOCATED" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_IS_ALLOCATED" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_is_allocated \- libhashkit Documentation . diff --git a/docs/man/hashkit_jenkins.3 b/docs/man/hashkit_jenkins.3 index 5f7b17d5..90096edc 100644 --- a/docs/man/hashkit_jenkins.3 +++ b/docs/man/hashkit_jenkins.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_JENKINS" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_JENKINS" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_jenkins \- libhashkit Documentation . diff --git a/docs/man/hashkit_md5.3 b/docs/man/hashkit_md5.3 index 88ed9f84..c6558e69 100644 --- a/docs/man/hashkit_md5.3 +++ b/docs/man/hashkit_md5.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_MD5" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_MD5" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_md5 \- libhashkit Documentation . diff --git a/docs/man/hashkit_murmur.3 b/docs/man/hashkit_murmur.3 index cd4beab9..482b351d 100644 --- a/docs/man/hashkit_murmur.3 +++ b/docs/man/hashkit_murmur.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_MURMUR" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_MURMUR" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_murmur \- libhashkit Documentation . diff --git a/docs/man/hashkit_value.3 b/docs/man/hashkit_value.3 index ef2df6c9..b13ae74a 100644 --- a/docs/man/hashkit_value.3 +++ b/docs/man/hashkit_value.3 @@ -1,4 +1,4 @@ -.TH "HASHKIT_VALUE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "HASHKIT_VALUE" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME hashkit_value \- libhashkit Documentation . diff --git a/docs/man/libhashkit.3 b/docs/man/libhashkit.3 index 905f60fb..1bb57137 100644 --- a/docs/man/libhashkit.3 +++ b/docs/man/libhashkit.3 @@ -1,4 +1,4 @@ -.TH "LIBHASHKIT" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "LIBHASHKIT" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME libhashkit \- libhashkit Documentation . diff --git a/docs/man/libmemcached.3 b/docs/man/libmemcached.3 index 61961968..48256365 100644 --- a/docs/man/libmemcached.3 +++ b/docs/man/libmemcached.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHED" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "LIBMEMCACHED" "3" "April 17, 2012" "1.0.6" "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 3af85b10..b5e263c4 100644 --- a/docs/man/libmemcached_check_configuration.3 +++ b/docs/man/libmemcached_check_configuration.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHED_CHECK_CONFIGURATION" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "LIBMEMCACHED_CHECK_CONFIGURATION" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME libmemcached_check_configuration \- libmemcached Documentation . diff --git a/docs/man/libmemcached_configuration.3 b/docs/man/libmemcached_configuration.3 index b31e15f7..9724f9d8 100644 --- a/docs/man/libmemcached_configuration.3 +++ b/docs/man/libmemcached_configuration.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHED_CONFIGURATION" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "LIBMEMCACHED_CONFIGURATION" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME libmemcached_configuration \- libmemcached Documentation . diff --git a/docs/man/libmemcached_examples.3 b/docs/man/libmemcached_examples.3 index e715f4ad..8155a74b 100644 --- a/docs/man/libmemcached_examples.3 +++ b/docs/man/libmemcached_examples.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHED_EXAMPLES" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "LIBMEMCACHED_EXAMPLES" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME libmemcached_examples \- libmemcached Documentation . diff --git a/docs/man/libmemcachedutil.3 b/docs/man/libmemcachedutil.3 index 9725d4a2..9fbecd97 100644 --- a/docs/man/libmemcachedutil.3 +++ b/docs/man/libmemcachedutil.3 @@ -1,4 +1,4 @@ -.TH "LIBMEMCACHEDUTIL" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "LIBMEMCACHEDUTIL" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME libmemcachedutil \- libmemcached Documentation . diff --git a/docs/man/memaslap.1 b/docs/man/memaslap.1 index a1b675a4..4b847ecc 100644 --- a/docs/man/memaslap.1 +++ b/docs/man/memaslap.1 @@ -1,4 +1,4 @@ -.TH "MEMASLAP" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMASLAP" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memaslap \- libmemcached Documentation . diff --git a/docs/man/memcached.3 b/docs/man/memcached.3 index 493f84d6..fe76bc55 100644 --- a/docs/man/memcached.3 +++ b/docs/man/memcached.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached \- libmemcached Documentation . diff --git a/docs/man/memcached_add.3 b/docs/man/memcached_add.3 index fa0e9493..fa5fb97d 100644 --- a/docs/man/memcached_add.3 +++ b/docs/man/memcached_add.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_ADD" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_ADD" "3" "April 17, 2012" "1.0.6" "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 209de7e8..039b410f 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_ADD_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 d5dca9e4..3bc3dc1b 100644 --- a/docs/man/memcached_analyze.3 +++ b/docs/man/memcached_analyze.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_ANALYZE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_ANALYZE" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_analyze \- libmemcached Documentation . diff --git a/docs/man/memcached_append.3 b/docs/man/memcached_append.3 index fdd82177..2df32e1b 100644 --- a/docs/man/memcached_append.3 +++ b/docs/man/memcached_append.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_APPEND" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_APPEND" "3" "April 17, 2012" "1.0.6" "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 7ee0ee53..e8e29c79 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_APPEND_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 fe40f7d2..84d14a1e 100644 --- a/docs/man/memcached_auto.3 +++ b/docs/man/memcached_auto.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_AUTO" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_AUTO" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_auto \- Incrementing and Decrementing Values . diff --git a/docs/man/memcached_behavior.3 b/docs/man/memcached_behavior.3 index a852db88..4a1e0517 100644 --- a/docs/man/memcached_behavior.3 +++ b/docs/man/memcached_behavior.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_BEHAVIOR" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_BEHAVIOR" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_behavior \- libmemcached Documentation . diff --git a/docs/man/memcached_behavior_get.3 b/docs/man/memcached_behavior_get.3 index 20be90dd..87325d20 100644 --- a/docs/man/memcached_behavior_get.3 +++ b/docs/man/memcached_behavior_get.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_BEHAVIOR_GET" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_BEHAVIOR_GET" "3" "April 17, 2012" "1.0.6" "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 0242d1f2..9d8c3063 100644 --- a/docs/man/memcached_behavior_set.3 +++ b/docs/man/memcached_behavior_set.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_BEHAVIOR_SET" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_BEHAVIOR_SET" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_behavior_set \- libmemcached Documentation . diff --git a/docs/man/memcached_callback.3 b/docs/man/memcached_callback.3 index a69059ff..1db9a4f6 100644 --- a/docs/man/memcached_callback.3 +++ b/docs/man/memcached_callback.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CALLBACK" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_CALLBACK" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_callback \- libmemcached Documentation . diff --git a/docs/man/memcached_callback_get.3 b/docs/man/memcached_callback_get.3 index 928e9e43..c75a5f30 100644 --- a/docs/man/memcached_callback_get.3 +++ b/docs/man/memcached_callback_get.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CALLBACK_GET" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_CALLBACK_GET" "3" "April 17, 2012" "1.0.6" "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 072a20dc..7cc7f888 100644 --- a/docs/man/memcached_callback_set.3 +++ b/docs/man/memcached_callback_set.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CALLBACK_SET" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_CALLBACK_SET" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_callback_set \- libmemcached Documentation . diff --git a/docs/man/memcached_cas.3 b/docs/man/memcached_cas.3 index e3fb7cba..e44403b3 100644 --- a/docs/man/memcached_cas.3 +++ b/docs/man/memcached_cas.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CAS" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_CAS" "3" "April 17, 2012" "1.0.6" "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 521e8fb1..f128264c 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_CAS_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 f3ba2587..6a7ee86d 100644 --- a/docs/man/memcached_clone.3 +++ b/docs/man/memcached_clone.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CLONE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_CLONE" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_clone \- libmemcached Documentation . diff --git a/docs/man/memcached_create.3 b/docs/man/memcached_create.3 index 83e64120..5a595247 100644 --- a/docs/man/memcached_create.3 +++ b/docs/man/memcached_create.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_CREATE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_CREATE" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_create \- libmemcached Documentation . diff --git a/docs/man/memcached_decrement.3 b/docs/man/memcached_decrement.3 index e3ec7906..ada05f12 100644 --- a/docs/man/memcached_decrement.3 +++ b/docs/man/memcached_decrement.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_DECREMENT" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_DECREMENT" "3" "April 17, 2012" "1.0.6" "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 ea0959dd..62d9b179 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_DECREMENT_WITH_INITIAL" "3" "April 17, 2012" "1.0.6" "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 fd63f6cb..cbe0bd38 100644 --- a/docs/man/memcached_delete.3 +++ b/docs/man/memcached_delete.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_DELETE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_DELETE" "3" "April 17, 2012" "1.0.6" "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 0766783d..47ba75cb 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_DELETE_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 8616ca3c..07f63c39 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_DESTROY_SASL_AUTH_DATA" "3" "April 17, 2012" "1.0.6" "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 3499f6dd..f1855162 100644 --- a/docs/man/memcached_dump.3 +++ b/docs/man/memcached_dump.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_DUMP" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_DUMP" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_dump \- libmemcached Documentation . diff --git a/docs/man/memcached_exist.3 b/docs/man/memcached_exist.3 index 1624477f..5d2a0d77 100644 --- a/docs/man/memcached_exist.3 +++ b/docs/man/memcached_exist.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_EXIST" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_EXIST" "3" "April 17, 2012" "1.0.6" "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 214e4928..33ac0ad0 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_EXIST_BY_KEY" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_exist_by_key \- libmemcached Documentation . diff --git a/docs/man/memcached_fetch.3 b/docs/man/memcached_fetch.3 index 5644cf66..60aed325 100644 --- a/docs/man/memcached_fetch.3 +++ b/docs/man/memcached_fetch.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FETCH" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_FETCH" "3" "April 17, 2012" "1.0.6" "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 7e56a136..fd51ae7b 100644 --- a/docs/man/memcached_fetch_execute.3 +++ b/docs/man/memcached_fetch_execute.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FETCH_EXECUTE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_FETCH_EXECUTE" "3" "April 17, 2012" "1.0.6" "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 62d8e9d8..dffafd23 100644 --- a/docs/man/memcached_fetch_result.3 +++ b/docs/man/memcached_fetch_result.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FETCH_RESULT" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_FETCH_RESULT" "3" "April 17, 2012" "1.0.6" "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 de76c39b..002ccce0 100644 --- a/docs/man/memcached_flush.3 +++ b/docs/man/memcached_flush.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FLUSH" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_FLUSH" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_flush \- libmemcached Documentation . diff --git a/docs/man/memcached_flush_buffers.3 b/docs/man/memcached_flush_buffers.3 index 6765686a..071f167d 100644 --- a/docs/man/memcached_flush_buffers.3 +++ b/docs/man/memcached_flush_buffers.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FLUSH_BUFFERS" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_FLUSH_BUFFERS" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_flush_buffers \- libmemcached Documentation . diff --git a/docs/man/memcached_free.3 b/docs/man/memcached_free.3 index ee43a6e7..3c99aa17 100644 --- a/docs/man/memcached_free.3 +++ b/docs/man/memcached_free.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_FREE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_FREE" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_free \- libmemcached Documentation . diff --git a/docs/man/memcached_generate_hash.3 b/docs/man/memcached_generate_hash.3 index 55b4a542..6dcd3983 100644 --- a/docs/man/memcached_generate_hash.3 +++ b/docs/man/memcached_generate_hash.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_GENERATE_HASH" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_GENERATE_HASH" "3" "April 17, 2012" "1.0.6" "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 2408a52d..271d8116 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_GENERATE_HASH_VALUE" "3" "April 17, 2012" "1.0.6" "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 91d9e4e3..40c1ea25 100644 --- a/docs/man/memcached_get.3 +++ b/docs/man/memcached_get.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_GET" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_GET" "3" "April 17, 2012" "1.0.6" "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 c5fac8ca..c635ff08 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_GET_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 3dda08c5..b7c921a6 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_GET_MEMORY_ALLOCATORS" "3" "April 17, 2012" "1.0.6" "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 f889f0ba..670f9901 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_GET_SASL_CALLBACKS" "3" "April 17, 2012" "1.0.6" "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 93ed8854..b3203ddc 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_GET_USER_DATA" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_get_user_data \- libmemcached Documentation . diff --git a/docs/man/memcached_increment.3 b/docs/man/memcached_increment.3 index 210f9b05..fe900873 100644 --- a/docs/man/memcached_increment.3 +++ b/docs/man/memcached_increment.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_INCREMENT" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_INCREMENT" "3" "April 17, 2012" "1.0.6" "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 62590fcb..ef3c8a55 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_INCREMENT_WITH_INITIAL" "3" "April 17, 2012" "1.0.6" "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 51bd91c4..c02116c5 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_LAST_ERROR_MESSAGE" "3" "April 17, 2012" "1.0.6" "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 5c09168f..c748850f 100644 --- a/docs/man/memcached_lib_version.3 +++ b/docs/man/memcached_lib_version.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_LIB_VERSION" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_LIB_VERSION" "3" "April 17, 2012" "1.0.6" "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 6c3cbb75..990b527f 100644 --- a/docs/man/memcached_memory_allocators.3 +++ b/docs/man/memcached_memory_allocators.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_MEMORY_ALLOCATORS" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_MEMORY_ALLOCATORS" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_memory_allocators \- libmemcached Documentation . diff --git a/docs/man/memcached_mget.3 b/docs/man/memcached_mget.3 index 56be2207..d359f112 100644 --- a/docs/man/memcached_mget.3 +++ b/docs/man/memcached_mget.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_MGET" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_MGET" "3" "April 17, 2012" "1.0.6" "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 946a6131..73cbd6ae 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_MGET_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 a933a2fe..a3164840 100644 --- a/docs/man/memcached_mget_execute.3 +++ b/docs/man/memcached_mget_execute.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_MGET_EXECUTE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_MGET_EXECUTE" "3" "April 17, 2012" "1.0.6" "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 70056925..e11885b5 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_MGET_EXECUTE_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 4feddc8e..127970e0 100644 --- a/docs/man/memcached_pool.3 +++ b/docs/man/memcached_pool.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL" "3" "April 17, 2012" "1.0.6" "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 2c71bd5d..896a6247 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL_BEHAVIOR_GET" "3" "April 17, 2012" "1.0.6" "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 ed065c14..003f7950 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL_BEHAVIOR_SET" "3" "April 17, 2012" "1.0.6" "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 185aa711..d6485cfe 100644 --- a/docs/man/memcached_pool_create.3 +++ b/docs/man/memcached_pool_create.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_CREATE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL_CREATE" "3" "April 17, 2012" "1.0.6" "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 f891756e..753d8dff 100644 --- a/docs/man/memcached_pool_destroy.3 +++ b/docs/man/memcached_pool_destroy.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_DESTROY" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL_DESTROY" "3" "April 17, 2012" "1.0.6" "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 8e96bd2b..a465c989 100644 --- a/docs/man/memcached_pool_fetch.3 +++ b/docs/man/memcached_pool_fetch.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_FETCH" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL_FETCH" "3" "April 17, 2012" "1.0.6" "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 97ed4980..25075def 100644 --- a/docs/man/memcached_pool_pop.3 +++ b/docs/man/memcached_pool_pop.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_POP" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL_POP" "3" "April 17, 2012" "1.0.6" "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 b5a006c5..ed0ea277 100644 --- a/docs/man/memcached_pool_push.3 +++ b/docs/man/memcached_pool_push.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_PUSH" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL_PUSH" "3" "April 17, 2012" "1.0.6" "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 030182ad..3921ee03 100644 --- a/docs/man/memcached_pool_release.3 +++ b/docs/man/memcached_pool_release.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_RELEASE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL_RELEASE" "3" "April 17, 2012" "1.0.6" "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 5313cc85..1659e91e 100644 --- a/docs/man/memcached_pool_st.3 +++ b/docs/man/memcached_pool_st.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_POOL_ST" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_POOL_ST" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_pool_st \- libmemcached Documentation . diff --git a/docs/man/memcached_prepend.3 b/docs/man/memcached_prepend.3 index c6d248b4..8310598a 100644 --- a/docs/man/memcached_prepend.3 +++ b/docs/man/memcached_prepend.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_PREPEND" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_PREPEND" "3" "April 17, 2012" "1.0.6" "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 b1c26783..dfc806dc 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_PREPEND_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 405d010a..cd46d858 100644 --- a/docs/man/memcached_quit.3 +++ b/docs/man/memcached_quit.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_QUIT" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_QUIT" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_quit \- libmemcached Documentation . diff --git a/docs/man/memcached_replace.3 b/docs/man/memcached_replace.3 index d05bf65a..c978056e 100644 --- a/docs/man/memcached_replace.3 +++ b/docs/man/memcached_replace.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_REPLACE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_REPLACE" "3" "April 17, 2012" "1.0.6" "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 f1187617..8fc502e0 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_REPLACE_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 a94ebf07..2dcb9c0b 100644 --- a/docs/man/memcached_result_cas.3 +++ b/docs/man/memcached_result_cas.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_CAS" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RESULT_CAS" "3" "April 17, 2012" "1.0.6" "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 8eaff32c..ee5d0245 100644 --- a/docs/man/memcached_result_create.3 +++ b/docs/man/memcached_result_create.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_CREATE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RESULT_CREATE" "3" "April 17, 2012" "1.0.6" "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 a06c2e50..ba4a3c7a 100644 --- a/docs/man/memcached_result_flags.3 +++ b/docs/man/memcached_result_flags.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_FLAGS" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RESULT_FLAGS" "3" "April 17, 2012" "1.0.6" "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 99d00945..553ed170 100644 --- a/docs/man/memcached_result_free.3 +++ b/docs/man/memcached_result_free.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_FREE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RESULT_FREE" "3" "April 17, 2012" "1.0.6" "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 ce2b8b77..9a6c5803 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RESULT_KEY_LENGTH" "3" "April 17, 2012" "1.0.6" "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 96830b61..0d54e81c 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RESULT_KEY_VALUE" "3" "April 17, 2012" "1.0.6" "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 7a61cc7a..70555dcd 100644 --- a/docs/man/memcached_result_length.3 +++ b/docs/man/memcached_result_length.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_LENGTH" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RESULT_LENGTH" "3" "April 17, 2012" "1.0.6" "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 27a44ff7..da1a914d 100644 --- a/docs/man/memcached_result_st.3 +++ b/docs/man/memcached_result_st.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_ST" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RESULT_ST" "3" "April 17, 2012" "1.0.6" "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 10e1a419..9ae59a3e 100644 --- a/docs/man/memcached_result_value.3 +++ b/docs/man/memcached_result_value.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RESULT_VALUE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RESULT_VALUE" "3" "April 17, 2012" "1.0.6" "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 81af3a59..f656ff02 100644 --- a/docs/man/memcached_return_t.3 +++ b/docs/man/memcached_return_t.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_RETURN_T" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_RETURN_T" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_return_t \- Return type values . diff --git a/docs/man/memcached_sasl.3 b/docs/man/memcached_sasl.3 index ded796be..0ab8abb8 100644 --- a/docs/man/memcached_sasl.3 +++ b/docs/man/memcached_sasl.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SASL" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SASL" "3" "April 17, 2012" "1.0.6" "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 80e31add..5688cb61 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SASL_SET_AUTH_DATA" "3" "April 17, 2012" "1.0.6" "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 ee63101d..7dd6b20e 100644 --- a/docs/man/memcached_server_add.3 +++ b/docs/man/memcached_server_add.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_ADD" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_ADD" "3" "April 17, 2012" "1.0.6" "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 19de27cc..e2426a65 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_ADD_UNIX_SOCKET" "3" "April 17, 2012" "1.0.6" "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 086c262f..c6e941c0 100644 --- a/docs/man/memcached_server_count.3 +++ b/docs/man/memcached_server_count.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_COUNT" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_COUNT" "3" "April 17, 2012" "1.0.6" "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 72097cb0..5b17aa02 100644 --- a/docs/man/memcached_server_cursor.3 +++ b/docs/man/memcached_server_cursor.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_CURSOR" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_CURSOR" "3" "April 17, 2012" "1.0.6" "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 bdbad1a5..f3cdf389 100644 --- a/docs/man/memcached_server_list.3 +++ b/docs/man/memcached_server_list.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_LIST" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_LIST" "3" "April 17, 2012" "1.0.6" "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 03d955ab..0eb66f2d 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_LIST_APPEND" "3" "April 17, 2012" "1.0.6" "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 02eaef19..27ed4366 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_LIST_COUNT" "3" "April 17, 2012" "1.0.6" "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 1e883173..3e718504 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_LIST_FREE" "3" "April 17, 2012" "1.0.6" "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 5607cc36..71ff1e86 100644 --- a/docs/man/memcached_server_push.3 +++ b/docs/man/memcached_server_push.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_PUSH" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_PUSH" "3" "April 17, 2012" "1.0.6" "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 66b0c9ea..49c89991 100644 --- a/docs/man/memcached_server_st.3 +++ b/docs/man/memcached_server_st.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVER_ST" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVER_ST" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_server_st \- libmemcached Documentation . diff --git a/docs/man/memcached_servers.3 b/docs/man/memcached_servers.3 index 29a3da8f..c878d351 100644 --- a/docs/man/memcached_servers.3 +++ b/docs/man/memcached_servers.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVERS" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVERS" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_servers \- libmemcached Documentation . diff --git a/docs/man/memcached_servers_parse.3 b/docs/man/memcached_servers_parse.3 index e989c916..b7ce8712 100644 --- a/docs/man/memcached_servers_parse.3 +++ b/docs/man/memcached_servers_parse.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVERS_PARSE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVERS_PARSE" "3" "April 17, 2012" "1.0.6" "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 647b882e..1d64beb0 100644 --- a/docs/man/memcached_servers_reset.3 +++ b/docs/man/memcached_servers_reset.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SERVERS_RESET" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SERVERS_RESET" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_servers_reset \- libmemcached Documentation . diff --git a/docs/man/memcached_set.3 b/docs/man/memcached_set.3 index 1a5ad051..829a8f73 100644 --- a/docs/man/memcached_set.3 +++ b/docs/man/memcached_set.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_SET" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SET" "3" "April 17, 2012" "1.0.6" "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 b1e4fa81..8933c3df 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SET_BY_KEY" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_set_by_key \- Storing and Replacing Data . diff --git a/docs/man/memcached_set_memory_allocators.3 b/docs/man/memcached_set_memory_allocators.3 index 3c04a3ba..97ce9876 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SET_MEMORY_ALLOCATORS" "3" "April 17, 2012" "1.0.6" "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 9cfbb08b..59fbca2a 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SET_MEMORY_ALLOCATORS_CONTEXT" "3" "April 17, 2012" "1.0.6" "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 93302500..4b8e8d51 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SET_SASL_CALLBACKS" "3" "April 17, 2012" "1.0.6" "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 c3e7b6ac..d94958f1 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_SET_USER_DATA" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_set_user_data \- libmemcached Documentation . diff --git a/docs/man/memcached_stat.3 b/docs/man/memcached_stat.3 index c38ac052..7e432375 100644 --- a/docs/man/memcached_stat.3 +++ b/docs/man/memcached_stat.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STAT" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_STAT" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_stat \- libmemcached Documentation . diff --git a/docs/man/memcached_stat_execute.3 b/docs/man/memcached_stat_execute.3 index dd43ebb7..32d54a1d 100644 --- a/docs/man/memcached_stat_execute.3 +++ b/docs/man/memcached_stat_execute.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STAT_EXECUTE" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_STAT_EXECUTE" "3" "April 17, 2012" "1.0.6" "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 bdb8a372..accaf369 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_STAT_GET_KEYS" "3" "April 17, 2012" "1.0.6" "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 9b7c872d..e994e27d 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_STAT_GET_VALUE" "3" "April 17, 2012" "1.0.6" "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 b11c69b0..8821f074 100644 --- a/docs/man/memcached_stat_servername.3 +++ b/docs/man/memcached_stat_servername.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STAT_SERVERNAME" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_STAT_SERVERNAME" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_stat_servername \- libmemcached Documentation . diff --git a/docs/man/memcached_stats.3 b/docs/man/memcached_stats.3 index cb482451..13e00165 100644 --- a/docs/man/memcached_stats.3 +++ b/docs/man/memcached_stats.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STATS" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_STATS" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_stats \- libmemcached Documentation . diff --git a/docs/man/memcached_strerror.3 b/docs/man/memcached_strerror.3 index 49780648..6f11e500 100644 --- a/docs/man/memcached_strerror.3 +++ b/docs/man/memcached_strerror.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_STRERROR" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_STRERROR" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_strerror \- libmemcached Documentation . diff --git a/docs/man/memcached_touch.3 b/docs/man/memcached_touch.3 index 73ed5075..b14047f5 100644 --- a/docs/man/memcached_touch.3 +++ b/docs/man/memcached_touch.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_TOUCH" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_TOUCH" "3" "April 17, 2012" "1.0.6" "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 829ad988..f1365b14 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" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_TOUCH_BY_KEY" "3" "April 17, 2012" "1.0.6" "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 1bb614fe..55a16109 100644 --- a/docs/man/memcached_user_data.3 +++ b/docs/man/memcached_user_data.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_USER_DATA" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_USER_DATA" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_user_data \- libmemcached Documentation . diff --git a/docs/man/memcached_verbosity.3 b/docs/man/memcached_verbosity.3 index 0c869d19..62bd14c8 100644 --- a/docs/man/memcached_verbosity.3 +++ b/docs/man/memcached_verbosity.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_VERBOSITY" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_VERBOSITY" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_verbosity \- libmemcached Documentation . diff --git a/docs/man/memcached_version.3 b/docs/man/memcached_version.3 index 81dfa440..7261f895 100644 --- a/docs/man/memcached_version.3 +++ b/docs/man/memcached_version.3 @@ -1,4 +1,4 @@ -.TH "MEMCACHED_VERSION" "3" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCACHED_VERSION" "3" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcached_version \- libmemcached Documentation . diff --git a/docs/man/memcapable.1 b/docs/man/memcapable.1 index 3a75a5c4..7c66aecf 100644 --- a/docs/man/memcapable.1 +++ b/docs/man/memcapable.1 @@ -1,4 +1,4 @@ -.TH "MEMCAPABLE" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCAPABLE" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcapable \- libmemcached Documentation . diff --git a/docs/man/memcat.1 b/docs/man/memcat.1 index 1585cc6d..9f3bcf17 100644 --- a/docs/man/memcat.1 +++ b/docs/man/memcat.1 @@ -1,4 +1,4 @@ -.TH "MEMCAT" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCAT" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcat \- libmemcached Documentation . diff --git a/docs/man/memcp.1 b/docs/man/memcp.1 index 2b11100f..bad529ca 100644 --- a/docs/man/memcp.1 +++ b/docs/man/memcp.1 @@ -1,4 +1,4 @@ -.TH "MEMCP" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMCP" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memcp \- libmemcached Documentation . diff --git a/docs/man/memdump.1 b/docs/man/memdump.1 index 711caae2..4ea95ab0 100644 --- a/docs/man/memdump.1 +++ b/docs/man/memdump.1 @@ -1,4 +1,4 @@ -.TH "MEMDUMP" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMDUMP" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memdump \- libmemcached Documentation . diff --git a/docs/man/memerror.1 b/docs/man/memerror.1 index f7772516..4f1690f0 100644 --- a/docs/man/memerror.1 +++ b/docs/man/memerror.1 @@ -1,4 +1,4 @@ -.TH "MEMERROR" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMERROR" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memerror \- libmemcached Documentation . diff --git a/docs/man/memflush.1 b/docs/man/memflush.1 index 16e8a066..dc48190f 100644 --- a/docs/man/memflush.1 +++ b/docs/man/memflush.1 @@ -1,4 +1,4 @@ -.TH "MEMFLUSH" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMFLUSH" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memflush \- libmemcached Documentation . diff --git a/docs/man/memrm.1 b/docs/man/memrm.1 index 2080694a..16c84d57 100644 --- a/docs/man/memrm.1 +++ b/docs/man/memrm.1 @@ -1,4 +1,4 @@ -.TH "MEMRM" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMRM" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memrm \- libmemcached Documentation . diff --git a/docs/man/memslap.1 b/docs/man/memslap.1 index 2e84672e..bf2199c1 100644 --- a/docs/man/memslap.1 +++ b/docs/man/memslap.1 @@ -1,4 +1,4 @@ -.TH "MEMSLAP" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMSLAP" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memslap \- libmemcached Documentation . diff --git a/docs/man/memstat.1 b/docs/man/memstat.1 index 895345df..117dac4d 100644 --- a/docs/man/memstat.1 +++ b/docs/man/memstat.1 @@ -1,4 +1,4 @@ -.TH "MEMSTAT" "1" "April 09, 2012" "1.0.6" "libmemcached" +.TH "MEMSTAT" "1" "April 17, 2012" "1.0.6" "libmemcached" .SH NAME memstat \- libmemcached Documentation . diff --git a/example/t/memcached_light.cc b/example/t/memcached_light.cc index bcfce0a5..e24d31c2 100644 --- a/example/t/memcached_light.cc +++ b/example/t/memcached_light.cc @@ -166,8 +166,6 @@ public: } }; -static MemcachedLightRunner defualt_libmemcached_runner; - test_st cmdline_option_TESTS[] ={ {"--help", true, help_TEST }, {"--verbose", true, verbose_TEST }, @@ -238,6 +236,6 @@ void get_world(Framework *world) world->_create= world_create; world->_destroy= world_destroy; world->collections= collection; - world->set_runner(&defualt_libmemcached_runner); + world->set_runner(new MemcachedLightRunner); } diff --git a/libmemcached/io.cc b/libmemcached/io.cc index 94686d05..e83522b9 100644 --- a/libmemcached/io.cc +++ b/libmemcached/io.cc @@ -203,17 +203,19 @@ static memcached_return_t io_wait(memcached_server_write_instance_st ptr, if (ptr->root->poll_timeout == 0) // Mimic 0 causes timeout behavior (not all platforms do this) { + ptr->io_wait_count.timeouts++; return memcached_set_error(*ptr, MEMCACHED_TIMEOUT, MEMCACHED_AT); } + int local_errno; size_t loop_max= 5; while (--loop_max) // While loop is for ERESTART or EINTR { int active_fd= poll(&fds, 1, ptr->root->poll_timeout); - assert_msg(active_fd <= 1 , "poll() returned an unexpected value"); - if (active_fd == 1) + if (active_fd >= 1) { + assert_msg(active_fd == 1 , "poll() returned an unexpected value"); return MEMCACHED_SUCCESS; } else if (active_fd == 0) @@ -221,48 +223,48 @@ static memcached_return_t io_wait(memcached_server_write_instance_st ptr, ptr->io_wait_count.timeouts++; return memcached_set_error(*ptr, MEMCACHED_TIMEOUT, MEMCACHED_AT); } - else // -1 + + // Only an error should result in this code being called. + local_errno= get_socket_errno(); // We cache in case memcached_quit_server() modifies errno + assert_msg(active_fd == -1 , "poll() returned an unexpected value"); + switch (local_errno) { - switch (get_socket_errno()) - { #ifdef TARGET_OS_LINUX - case ERESTART: + case ERESTART: #endif - case EINTR: - break; + case EINTR: + continue; - case EFAULT: - case ENOMEM: - return memcached_set_error(*ptr, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT); + case EFAULT: + case ENOMEM: + return memcached_set_error(*ptr, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT); - case EINVAL: - return memcached_set_error(*ptr, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT, memcached_literal_param("RLIMIT_NOFILE exceeded, or if OSX the timeout value was invalid")); + case EINVAL: + return memcached_set_error(*ptr, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT, memcached_literal_param("RLIMIT_NOFILE exceeded, or if OSX the timeout value was invalid")); - default: - int local_errno= get_socket_errno(); // We cache in case memcached_quit_server() modifies errno - if (fds.revents & POLLERR) + default: + if (fds.revents & POLLERR) + { + int err; + socklen_t len= sizeof (err); + if (getsockopt(ptr->fd, SOL_SOCKET, SO_ERROR, &err, &len) == 0) { - int err; - socklen_t len= sizeof (err); - if (getsockopt(ptr->fd, SOL_SOCKET, SO_ERROR, &err, &len) == 0) + if (err == 0) // treat this as EINTR { - if (err == 0) // treat this as EINTR - { - continue; - } - local_errno= err; + continue; } + local_errno= err; } - memcached_quit_server(ptr, true); - - return memcached_set_errno(*ptr, local_errno, MEMCACHED_AT); } + break; } + + break; // should only occur from poll error } memcached_quit_server(ptr, true); - return memcached_set_errno(*ptr, get_socket_errno(), MEMCACHED_AT); + return memcached_set_errno(*ptr, local_errno, MEMCACHED_AT); } static bool io_flush(memcached_server_write_instance_st ptr, @@ -302,16 +304,8 @@ static bool io_flush(memcached_server_write_instance_st ptr, WATCHPOINT_ASSERT(ptr->fd != INVALID_SOCKET); WATCHPOINT_ASSERT(write_length > 0); - ssize_t sent_length= 0; - WATCHPOINT_ASSERT(ptr->fd != INVALID_SOCKET); - if (with_flush) - { - sent_length= ::send(ptr->fd, local_write_ptr, write_length, MSG_NOSIGNAL|MSG_DONTWAIT); - } - else - { - sent_length= ::send(ptr->fd, local_write_ptr, write_length, MSG_NOSIGNAL|MSG_DONTWAIT|MSG_MORE); - } + int flags= with_flush ? MSG_NOSIGNAL|MSG_DONTWAIT : MSG_NOSIGNAL|MSG_DONTWAIT|MSG_MORE; + ssize_t sent_length= ::send(ptr->fd, local_write_ptr, write_length, flags); if (sent_length == SOCKET_ERROR) { @@ -347,8 +341,6 @@ static bool io_flush(memcached_server_write_instance_st ptr, } else if (rc == MEMCACHED_TIMEOUT) { - ptr->io_wait_count.timeouts++; - error= memcached_set_error(*ptr, MEMCACHED_TIMEOUT, MEMCACHED_AT); return false; } diff --git a/libtest/binaries.cc b/libtest/binaries.cc index e437f969..2efde2f3 100644 --- a/libtest/binaries.cc +++ b/libtest/binaries.cc @@ -46,10 +46,22 @@ bool has_gearmand_binary() return false; } +bool has_drizzled_binary() +{ +#if defined(HAVE_DRIZZLED_BINARY) && HAVE_DRIZZLED_BINARY + if (access(DRIZZLED_BINARY, R_OK|X_OK) == 0) + { + return true; + } +#endif + + return false; +} + bool has_memcached_binary() { #if defined(HAVE_MEMCACHED_BINARY) && HAVE_MEMCACHED_BINARY - if (access(MEMCACHED_BINARY,R_OK|X_OK) == 0) + if (access(MEMCACHED_BINARY, R_OK|X_OK) == 0) { return true; } diff --git a/libtest/binaries.h b/libtest/binaries.h index e071016c..0b886872 100644 --- a/libtest/binaries.h +++ b/libtest/binaries.h @@ -32,5 +32,8 @@ bool has_memcached_sasl_binary(); LIBTEST_API bool has_gearmand_binary(); +LIBTEST_API +bool has_drizzled_binary(); + } // namespace libtest diff --git a/libtest/cmdline.cc b/libtest/cmdline.cc index de7c89d7..6b8205cb 100644 --- a/libtest/cmdline.cc +++ b/libtest/cmdline.cc @@ -113,6 +113,7 @@ Application::Application(const std::string& arg, const bool _use_libtool_arg) : _use_valgrind(false), _use_gdb(false), _use_ptrcheck(false), + _will_fail(false), _argc(0), _exectuble(arg), stdin_fd(STDIN_FILENO), @@ -252,7 +253,10 @@ Application::error_t Application::run(const char *args[]) if (spawn_ret != 0) { - Error << strerror(spawn_ret) << "(" << spawn_ret << ")"; + if (_will_fail == false) + { + Error << strerror(spawn_ret) << "(" << spawn_ret << ")"; + } _pid= -1; return Application::INVALID; } @@ -792,4 +796,9 @@ const char *gearmand_binary() return GEARMAND_BINARY; } +const char *drizzled_binary() +{ + return DRIZZLED_BINARY; +} + } // namespace exec_cmdline diff --git a/libtest/cmdline.h b/libtest/cmdline.h index 44fd17f9..a3d9cb25 100644 --- a/libtest/cmdline.h +++ b/libtest/cmdline.h @@ -134,6 +134,11 @@ public: return _pid; } + void will_fail() + { + _will_fail= true; + } + private: void create_argv(const char *args[]); void delete_argv(); @@ -143,6 +148,7 @@ private: bool _use_valgrind; bool _use_gdb; bool _use_ptrcheck; + bool _will_fail; size_t _argc; std::string _exectuble_name; std::string _exectuble; @@ -184,5 +190,6 @@ static inline std::ostream& operator<<(std::ostream& output, const enum Applicat int exec_cmdline(const std::string& executable, const char *args[], bool use_libtool= false); const char *gearmand_binary(); +const char *drizzled_binary(); } diff --git a/libtest/common.h b/libtest/common.h index 05f273a7..39b99c51 100644 --- a/libtest/common.h +++ b/libtest/common.h @@ -58,6 +58,7 @@ #include #include #include +#include #include #include diff --git a/libtest/drizzled.cc b/libtest/drizzled.cc new file mode 100644 index 00000000..c1241922 --- /dev/null +++ b/libtest/drizzled.cc @@ -0,0 +1,206 @@ +/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: + * + * libtest + * + * Copyright (C) 2011 Data Differential, http://datadifferential.com/ + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#include +#include + +#include + +#include "util/instance.hpp" +#include "util/operation.hpp" + +using namespace datadifferential; +using namespace libtest; + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef __INTEL_COMPILER +#pragma GCC diagnostic ignored "-Wold-style-cast" +#endif + +#if defined(HAVE_LIBDRIZZLE) && HAVE_LIBDRIZZLE +#include +#endif + +using namespace libtest; + +namespace libtest { +bool ping_drizzled(const in_port_t _port) +{ +#if defined(HAVE_LIBDRIZZLE) && HAVE_LIBDRIZZLE + { + drizzle_st *drizzle= drizzle_create(NULL); + + if (drizzle == NULL) + { + return false; + } + + drizzle_con_st *con; + + if ((con= drizzle_con_create(drizzle, NULL)) == NULL) + { + drizzle_free(drizzle); + return false; + } + + drizzle_con_set_tcp(con, "localhost", _port); + drizzle_con_set_auth(con, "root", 0); + + bool success= false; + + drizzle_return_t rc; + if ((rc= drizzle_con_connect(con)) == DRIZZLE_RETURN_OK) + { + drizzle_result_st *result= drizzle_ping(con, NULL, &rc); + success= bool(result); + drizzle_result_free(result); + } + + if (success == true) + { } + else if (rc != DRIZZLE_RETURN_OK) + { + Error << drizzle_error(drizzle) << " localhost:" << _port; + } + + drizzle_con_free(con); + drizzle_free(drizzle); + + return success; + } +#endif + + return false; +} +} // namespace libtest + +class Drizzle : public libtest::Server +{ +private: +public: + Drizzle(const std::string& host_arg, in_port_t port_arg) : + libtest::Server(host_arg, port_arg, DRIZZLED_BINARY, false) + { + set_pid_file(); + } + + bool ping() + { + size_t limit= 5; + while (_app.check() and --limit) + { + if (ping_drizzled(_port)) + { + return true; + } + libtest::dream(1, 0); + } + + return false; + } + + const char *name() + { + return "drizzled"; + }; + + void log_file_option(Application& app, const std::string& arg) + { + } + + bool has_log_file_option() const + { + return true; + } + + bool broken_pid_file() + { + return true; + } + + bool is_libtool() + { + return false; + } + + bool has_syslog() const + { + return true; + } + + bool has_port_option() const + { + return true; + } + + void port_option(Application& app, in_port_t arg) + { + if (arg > 0) + { + char buffer[1024]; + snprintf(buffer, sizeof(buffer), "--drizzle-protocol.port=%d", int(arg)); + app.add_option(buffer); + } + } + + bool build(size_t argc, const char *argv[]); +}; + +bool Drizzle::build(size_t argc, const char *argv[]) +{ + if (getuid() == 0 or geteuid() == 0) + { + add_option("--user=root"); + } + + add_option("--verbose=INSPECT"); +#if 0 + add_option("--datadir=var/drizzle"); +#endif + + for (size_t x= 0 ; x < argc ; x++) + { + add_option(argv[x]); + } + + return true; +} + +namespace libtest { + +libtest::Server *build_drizzled(const char *hostname, in_port_t try_port) +{ + return new Drizzle(hostname, try_port); +} + +} diff --git a/libtest/drizzled.h b/libtest/drizzled.h new file mode 100644 index 00000000..496a2019 --- /dev/null +++ b/libtest/drizzled.h @@ -0,0 +1,36 @@ +/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: + * + * libtest + * + * Copyright (C) 2012 Data Differential, http://datadifferential.com/ + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#pragma once + +#include + +namespace libtest { struct Server; } + +namespace libtest { + +libtest::Server *build_drizzled(const char *hostname, in_port_t try_port); + +bool ping_drizzled(const in_port_t); + +} + diff --git a/libtest/framework.cc b/libtest/framework.cc index 96918664..3a4d85d5 100644 --- a/libtest/framework.cc +++ b/libtest/framework.cc @@ -33,8 +33,6 @@ static test_return_t _default_callback(void *p) return TEST_SUCCESS; } -static Runner defualt_runners; - Framework::Framework() : collections(NULL), _create(NULL), @@ -56,6 +54,8 @@ Framework::~Framework() } _servers.shutdown(); + + delete _runner; } test_return_t Framework::Item::pre(void *arg) @@ -122,7 +122,7 @@ libtest::Runner *Framework::runner() { if (_runner == NULL) { - _runner= &defualt_runners; + _runner= new Runner; } _runner->set_servers(_servers); diff --git a/libtest/gearmand.cc b/libtest/gearmand.cc index 325582f6..7a33b4df 100644 --- a/libtest/gearmand.cc +++ b/libtest/gearmand.cc @@ -122,7 +122,7 @@ public: bool has_syslog() const { - return true; + return false; // --syslog.errmsg-enable } bool has_port_option() const diff --git a/libtest/include.am b/libtest/include.am index 59706ad8..58c7eb49 100644 --- a/libtest/include.am +++ b/libtest/include.am @@ -49,6 +49,7 @@ drd: EXTRA_DIST+= libtest/run.gdb CLEANFILES+= \ + tmp_chroot/var/drizzle/* \ tmp_chroot/var/log/* \ tmp_chroot/var/run/* \ tmp_chroot/var/tmp/* @@ -73,6 +74,7 @@ noinst_HEADERS+= \ libtest/fatal.hpp \ libtest/framework.h \ libtest/gearmand.h \ + libtest/drizzled.h \ libtest/get.h \ libtest/has.hpp \ libtest/http.hpp \ @@ -99,34 +101,36 @@ noinst_HEADERS+= \ libtest/wait.h noinst_LTLIBRARIES+= libtest/libtest.la -libtest_libtest_la_SOURCES= \ - libtest/binaries.cc \ - libtest/cmdline.cc \ - libtest/comparison.cc \ - libtest/core.cc \ - libtest/cpu.cc \ - libtest/dream.cc \ - libtest/fatal.cc \ - libtest/framework.cc \ - libtest/has.cc \ - libtest/http.cc \ - libtest/is_local.cc \ - libtest/killpid.cc \ - libtest/libtool.cc \ - libtest/port.cc \ - libtest/runner.cc \ - libtest/server.cc \ - libtest/server_container.cc \ - libtest/signal.cc \ - libtest/socket.cc \ - libtest/strerror.cc \ - libtest/test.cc \ - libtest/tmpfile.cc \ - libtest/vchar.cc libtest_libtest_la_CXXFLAGS= libtest_libtest_la_DEPENDENCIES= libtest_libtest_la_LIBADD= +libtest_libtest_la_SOURCES= + +libtest_libtest_la_SOURCES+= libtest/binaries.cc +libtest_libtest_la_SOURCES+= libtest/cmdline.cc +libtest_libtest_la_SOURCES+= libtest/comparison.cc +libtest_libtest_la_SOURCES+= libtest/core.cc +libtest_libtest_la_SOURCES+= libtest/cpu.cc +libtest_libtest_la_SOURCES+= libtest/dream.cc +libtest_libtest_la_SOURCES+= libtest/fatal.cc +libtest_libtest_la_SOURCES+= libtest/framework.cc +libtest_libtest_la_SOURCES+= libtest/has.cc +libtest_libtest_la_SOURCES+= libtest/drizzled.cc +libtest_libtest_la_SOURCES+= libtest/http.cc +libtest_libtest_la_SOURCES+= libtest/is_local.cc +libtest_libtest_la_SOURCES+= libtest/killpid.cc +libtest_libtest_la_SOURCES+= libtest/libtool.cc +libtest_libtest_la_SOURCES+= libtest/main.cc +libtest_libtest_la_SOURCES+= libtest/port.cc +libtest_libtest_la_SOURCES+= libtest/runner.cc +libtest_libtest_la_SOURCES+= libtest/server.cc +libtest_libtest_la_SOURCES+= libtest/server_container.cc +libtest_libtest_la_SOURCES+= libtest/signal.cc +libtest_libtest_la_SOURCES+= libtest/socket.cc +libtest_libtest_la_SOURCES+= libtest/strerror.cc +libtest_libtest_la_SOURCES+= libtest/tmpfile.cc +libtest_libtest_la_SOURCES+= libtest/vchar.cc libtest_libtest_la_CXXFLAGS+= ${NO_CONVERSION} libtest_libtest_la_CXXFLAGS+= -DBUILDING_LIBTEST @@ -170,6 +174,13 @@ libtest_unittest_CXXFLAGS+= -DHAVE_LIBMEMCACHED=0 endif endif +if HAVE_LIBDRIZZLE + +libtest_libtest_la_LIBADD+= $(libdrizzle_LIBS) +libtest_libtest_la_CXXFLAGS+= $(libdrizzle_CFLAGS) + +endif + if BUILDING_GEARMAN libtest_libtest_la_DEPENDENCIES+= libgearman/libgearman.la libtest_libtest_la_LIBADD+= libgearman/libgearman.la @@ -192,7 +203,7 @@ libtest_libtest_la_SOURCES+= util/operation.cc endif endif -libtest_tmp_dir: tmp_chroot/var/log tmp_chroot/var/tmp tmp_chroot/var/run +libtest_tmp_dir: tmp_chroot/var/log tmp_chroot/var/tmp tmp_chroot/var/run tmp_chroot/var/drizzle tmp_chroot: @$(mkdir_p) tmp_chroot @@ -206,6 +217,9 @@ tmp_chroot/var/log: tmp_chroot/var tmp_chroot/var/tmp: tmp_chroot/var @$(mkdir_p) tmp_chroot/var/tmp +tmp_chroot/var/drizzle: tmp_chroot/var + @$(mkdir_p) tmp_chroot/var/drizzle + tmp_chroot/var/run: tmp_chroot/var @$(mkdir_p) tmp_chroot/var/run diff --git a/libtest/main.cc b/libtest/main.cc new file mode 100644 index 00000000..ef10028c --- /dev/null +++ b/libtest/main.cc @@ -0,0 +1,479 @@ +/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: + * + * libtest + * + * Copyright (C) 2011 Data Differential, http://datadifferential.com/ + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#ifndef __INTEL_COMPILER +#pragma GCC diagnostic ignored "-Wold-style-cast" +#endif + +using namespace libtest; + +static void stats_print(Stats *stats) +{ + if (stats->collection_failed == 0 and stats->collection_success == 0) + { + return; + } + + Out << "\tTotal Collections\t\t\t\t" << stats->collection_total; + Out << "\tFailed Collections\t\t\t\t" << stats->collection_failed; + Out << "\tSkipped Collections\t\t\t\t" << stats->collection_skipped; + Out << "\tSucceeded Collections\t\t\t\t" << stats->collection_success; + Outn(); + Out << "Total\t\t\t\t" << stats->total; + Out << "\tFailed\t\t\t" << stats->failed; + Out << "\tSkipped\t\t\t" << stats->skipped; + Out << "\tSucceeded\t\t" << stats->success; +} + +static long int timedif(struct timeval a, struct timeval b) +{ + long us, s; + + us = (long)(a.tv_usec - b.tv_usec); + us /= 1000; + s = (long)(a.tv_sec - b.tv_sec); + s *= 1000; + return s + us; +} + +#include +#include + +int main(int argc, char *argv[]) +{ + bool opt_massive= false; + unsigned long int opt_repeat= 1; // Run all tests once + bool opt_quiet= false; + std::string collection_to_run; + + // Options parsing + { + enum long_option_t { + OPT_LIBYATL_VERSION, + OPT_LIBYATL_MATCH_COLLECTION, + OPT_LIBYATL_MASSIVE, + OPT_LIBYATL_QUIET, + OPT_LIBYATL_REPEAT + }; + + static struct option long_options[]= + { + { "version", no_argument, NULL, OPT_LIBYATL_VERSION }, + { "quiet", no_argument, NULL, OPT_LIBYATL_QUIET }, + { "repeat", no_argument, NULL, OPT_LIBYATL_REPEAT }, + { "collection", required_argument, NULL, OPT_LIBYATL_MATCH_COLLECTION }, + { "massive", no_argument, NULL, OPT_LIBYATL_MASSIVE }, + { 0, 0, 0, 0 } + }; + + int option_index= 0; + while (1) + { + int option_rv= getopt_long(argc, argv, "", long_options, &option_index); + if (option_rv == -1) + { + break; + } + + switch (option_rv) + { + case OPT_LIBYATL_VERSION: + break; + + case OPT_LIBYATL_QUIET: + opt_quiet= true; + break; + + case OPT_LIBYATL_REPEAT: + opt_repeat= strtoul(optarg, (char **) NULL, 10); + break; + + case OPT_LIBYATL_MATCH_COLLECTION: + collection_to_run= optarg; + break; + + case OPT_LIBYATL_MASSIVE: + opt_massive= true; + break; + + case '?': + /* getopt_long already printed an error message. */ + Error << "unknown option to getopt_long()"; + exit(EXIT_FAILURE); + + default: + break; + } + } + } + + srandom((unsigned int)time(NULL)); + + if (bool(getenv("YATL_REPEAT")) and (strtoul(getenv("YATL_REPEAT"), (char **) NULL, 10) > 1)) + { + opt_repeat= strtoul(getenv("YATL_REPEAT"), (char **) NULL, 10); + } + + if ((bool(getenv("YATL_QUIET")) and (strcmp(getenv("YATL_QUIET"), "0") == 0)) or opt_quiet) + { + opt_quiet= true; + } + else if (getenv("JENKINS_URL")) + { + if (bool(getenv("YATL_QUIET")) and (strcmp(getenv("YATL_QUIET"), "1") == 0)) + { } + else + { + opt_quiet= true; + } + } + + if (opt_quiet) + { + close(STDOUT_FILENO); + } + + char buffer[1024]; + if (getenv("LIBTEST_TMP")) + { + snprintf(buffer, sizeof(buffer), "%s", getenv("LIBTEST_TMP")); + } + else + { + snprintf(buffer, sizeof(buffer), "%s", LIBTEST_TEMP); + } + + if (chdir(buffer) == -1) + { + char getcwd_buffer[1024]; + char *dir= getcwd(getcwd_buffer, sizeof(getcwd_buffer)); + + Error << "Unable to chdir() from " << dir << " to " << buffer << " errno:" << strerror(errno); + return EXIT_FAILURE; + } + + if (libtest::libtool() == NULL) + { + Error << "Failed to locate libtool"; + return EXIT_FAILURE; + } + + int exit_code; + + try { + do { + exit_code= EXIT_SUCCESS; + Framework world; + + fatal_assert(sigignore(SIGPIPE) == 0); + + libtest::SignalThread signal; + if (signal.setup() == false) + { + Error << "Failed to setup signals"; + return EXIT_FAILURE; + } + + Stats stats; + + get_world(&world); + + test_return_t error; + void *creators_ptr= world.create(error); + + switch (error) + { + case TEST_SUCCESS: + break; + + case TEST_SKIPPED: + Out << "SKIP " << argv[0]; + return EXIT_SUCCESS; + + case TEST_FAILURE: + return EXIT_FAILURE; + } + + if (getenv("YATL_COLLECTION_TO_RUN")) + { + if (strlen(getenv("YATL_COLLECTION_TO_RUN"))) + { + collection_to_run= getenv("YATL_COLLECTION_TO_RUN"); + } + } + + if (collection_to_run.compare("none") == 0) + { + return EXIT_SUCCESS; + } + + if (collection_to_run.empty() == false) + { + Out << "Only testing " << collection_to_run; + } + + char *wildcard= NULL; + if (argc == 3) + { + wildcard= argv[2]; + } + + for (collection_st *next= world.collections; next and next->name and (not signal.is_shutdown()); next++) + { + bool failed= false; + bool skipped= false; + + if (collection_to_run.empty() == false and fnmatch(collection_to_run.c_str(), next->name, 0)) + { + continue; + } + + stats.collection_total++; + + test_return_t collection_rc= world.startup(creators_ptr); + + if (collection_rc == TEST_SUCCESS and next->pre) + { + collection_rc= world.runner()->pre(next->pre, creators_ptr); + } + + switch (collection_rc) + { + case TEST_SUCCESS: + break; + + case TEST_FAILURE: + Out << next->name << " [ failed ]"; + failed= true; + signal.set_shutdown(SHUTDOWN_GRACEFUL); + goto cleanup; + + case TEST_SKIPPED: + Out << next->name << " [ skipping ]"; + skipped= true; + goto cleanup; + + default: + fatal_message("invalid return code"); + } + + Out << "Collection: " << next->name; + + for (test_st *run= next->tests; run->name; run++) + { + struct timeval start_time, end_time; + long int load_time= 0; + + if (wildcard && fnmatch(wildcard, run->name, 0)) + { + continue; + } + + test_return_t return_code; + try { + if (test_success(return_code= world.item.startup(creators_ptr))) + { + if (test_success(return_code= world.item.flush(creators_ptr, run))) + { + // @note pre will fail is SKIPPED is returned + if (test_success(return_code= world.item.pre(creators_ptr))) + { + { // Runner Code + gettimeofday(&start_time, NULL); + assert(world.runner()); + assert(run->test_fn); + try + { + return_code= world.runner()->run(run->test_fn, creators_ptr); + } + // Special case where check for the testing of the exception + // system. + catch (libtest::fatal &e) + { + if (fatal::is_disabled()) + { + fatal::increment_disabled_counter(); + return_code= TEST_SUCCESS; + } + else + { + throw; + } + } + + gettimeofday(&end_time, NULL); + load_time= timedif(end_time, start_time); + } + } + + // @todo do something if post fails + (void)world.item.post(creators_ptr); + } + else if (return_code == TEST_SKIPPED) + { } + else if (return_code == TEST_FAILURE) + { + Error << " item.flush(failure)"; + signal.set_shutdown(SHUTDOWN_GRACEFUL); + } + } + else if (return_code == TEST_SKIPPED) + { } + else if (return_code == TEST_FAILURE) + { + Error << " item.startup(failure)"; + signal.set_shutdown(SHUTDOWN_GRACEFUL); + } + } + + catch (libtest::fatal &e) + { + Error << "Fatal exception was thrown: " << e.what(); + return_code= TEST_FAILURE; + } + catch (std::exception &e) + { + Error << "Exception was thrown: " << e.what(); + return_code= TEST_FAILURE; + } + catch (...) + { + Error << "Unknown exception occurred"; + return_code= TEST_FAILURE; + } + + stats.total++; + + switch (return_code) + { + case TEST_SUCCESS: + Out << "\tTesting " << run->name << "\t\t\t\t\t" << load_time / 1000 << "." << load_time % 1000 << "[ " << test_strerror(return_code) << " ]"; + stats.success++; + break; + + case TEST_FAILURE: + stats.failed++; + failed= true; + Out << "\tTesting " << run->name << "\t\t\t\t\t" << "[ " << test_strerror(return_code) << " ]"; + break; + + case TEST_SKIPPED: + stats.skipped++; + skipped= true; + Out << "\tTesting " << run->name << "\t\t\t\t\t" << "[ " << test_strerror(return_code) << " ]"; + break; + + default: + fatal_message("invalid return code"); + } + + if (test_failed(world.on_error(return_code, creators_ptr))) + { + Error << "Failed while running on_error()"; + signal.set_shutdown(SHUTDOWN_GRACEFUL); + break; + } + } + + (void) world.runner()->post(next->post, creators_ptr); + +cleanup: + if (failed == false and skipped == false) + { + stats.collection_success++; + } + + if (failed) + { + stats.collection_failed++; + } + + if (skipped) + { + stats.collection_skipped++; + } + + world.shutdown(creators_ptr); + Outn(); + } + + if (not signal.is_shutdown()) + { + signal.set_shutdown(SHUTDOWN_GRACEFUL); + } + + shutdown_t status= signal.get_shutdown(); + if (status == SHUTDOWN_FORCED) + { + Out << "Tests were aborted."; + exit_code= EXIT_FAILURE; + } + else if (stats.collection_failed) + { + Out << "Some test failed."; + exit_code= EXIT_FAILURE; + } + else if (stats.collection_skipped and stats.collection_failed and stats.collection_success) + { + Out << "Some tests were skipped."; + } + else if (stats.collection_success and stats.collection_failed == 0) + { + Out << "All tests completed successfully."; + } + + stats_print(&stats); + + Outn(); // Generate a blank to break up the messages if make check/test has been run + } while (exit_code == EXIT_SUCCESS and --opt_repeat); + } + catch (libtest::fatal& e) + { + std::cerr << e.what() << std::endl; + } + catch (std::exception& e) + { + std::cerr << e.what() << std::endl; + } + catch (...) + { + std::cerr << "Unknown exception halted execution." << std::endl; + } + + return exit_code; +} diff --git a/libtest/server.cc b/libtest/server.cc index 99a9eeb9..41da231c 100644 --- a/libtest/server.cc +++ b/libtest/server.cc @@ -201,6 +201,7 @@ bool Server::start() { if (_app.check()) { + _app.slurp(); continue; } @@ -254,14 +255,18 @@ bool Server::start() } throw libtest::fatal(LIBYATL_DEFAULT_PARAM, - "Failed to ping(), waited: %u server started, having pid_file. exec: %s stderr:%s", + "Failed native ping(), pid: %d is alive: %s waited: %u server started, having pid_file. exec: %s stderr:%s", + int(_app.pid()), + _app.check() ? "true" : "false", this_wait, _running.c_str(), _app.stderr_c_str()); } else { throw libtest::fatal(LIBYATL_DEFAULT_PARAM, - "Failed to ping(), waited: %u server started. exec: %s stderr:%s", + "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, _running.c_str(), _app.stderr_c_str()); @@ -371,7 +376,7 @@ bool Server::args(Application& app) { // Set a log file if it was requested (and we can) - if (false and has_log_file_option()) + if (has_log_file_option()) { set_log_file(); log_file_option(app, _log_file); diff --git a/libtest/server_container.cc b/libtest/server_container.cc index b63cfbb4..4fdfd414 100644 --- a/libtest/server_container.cc +++ b/libtest/server_container.cc @@ -179,6 +179,16 @@ bool server_startup(server_startup_st& construct, const std::string& server_type } } } + else if (server_type.compare("drizzled") == 0) + { + if (DRIZZLED_BINARY) + { + if (HAVE_LIBDRIZZLE) + { + server= build_drizzled("localhost", try_port); + } + } + } else if (server_type.compare("blobslap_worker") == 0) { if (GEARMAND_BINARY) diff --git a/libtest/test.cc b/libtest/test.cc deleted file mode 100644 index ef10028c..00000000 --- a/libtest/test.cc +++ /dev/null @@ -1,479 +0,0 @@ -/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: - * - * libtest - * - * Copyright (C) 2011 Data Differential, http://datadifferential.com/ - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#ifndef __INTEL_COMPILER -#pragma GCC diagnostic ignored "-Wold-style-cast" -#endif - -using namespace libtest; - -static void stats_print(Stats *stats) -{ - if (stats->collection_failed == 0 and stats->collection_success == 0) - { - return; - } - - Out << "\tTotal Collections\t\t\t\t" << stats->collection_total; - Out << "\tFailed Collections\t\t\t\t" << stats->collection_failed; - Out << "\tSkipped Collections\t\t\t\t" << stats->collection_skipped; - Out << "\tSucceeded Collections\t\t\t\t" << stats->collection_success; - Outn(); - Out << "Total\t\t\t\t" << stats->total; - Out << "\tFailed\t\t\t" << stats->failed; - Out << "\tSkipped\t\t\t" << stats->skipped; - Out << "\tSucceeded\t\t" << stats->success; -} - -static long int timedif(struct timeval a, struct timeval b) -{ - long us, s; - - us = (long)(a.tv_usec - b.tv_usec); - us /= 1000; - s = (long)(a.tv_sec - b.tv_sec); - s *= 1000; - return s + us; -} - -#include -#include - -int main(int argc, char *argv[]) -{ - bool opt_massive= false; - unsigned long int opt_repeat= 1; // Run all tests once - bool opt_quiet= false; - std::string collection_to_run; - - // Options parsing - { - enum long_option_t { - OPT_LIBYATL_VERSION, - OPT_LIBYATL_MATCH_COLLECTION, - OPT_LIBYATL_MASSIVE, - OPT_LIBYATL_QUIET, - OPT_LIBYATL_REPEAT - }; - - static struct option long_options[]= - { - { "version", no_argument, NULL, OPT_LIBYATL_VERSION }, - { "quiet", no_argument, NULL, OPT_LIBYATL_QUIET }, - { "repeat", no_argument, NULL, OPT_LIBYATL_REPEAT }, - { "collection", required_argument, NULL, OPT_LIBYATL_MATCH_COLLECTION }, - { "massive", no_argument, NULL, OPT_LIBYATL_MASSIVE }, - { 0, 0, 0, 0 } - }; - - int option_index= 0; - while (1) - { - int option_rv= getopt_long(argc, argv, "", long_options, &option_index); - if (option_rv == -1) - { - break; - } - - switch (option_rv) - { - case OPT_LIBYATL_VERSION: - break; - - case OPT_LIBYATL_QUIET: - opt_quiet= true; - break; - - case OPT_LIBYATL_REPEAT: - opt_repeat= strtoul(optarg, (char **) NULL, 10); - break; - - case OPT_LIBYATL_MATCH_COLLECTION: - collection_to_run= optarg; - break; - - case OPT_LIBYATL_MASSIVE: - opt_massive= true; - break; - - case '?': - /* getopt_long already printed an error message. */ - Error << "unknown option to getopt_long()"; - exit(EXIT_FAILURE); - - default: - break; - } - } - } - - srandom((unsigned int)time(NULL)); - - if (bool(getenv("YATL_REPEAT")) and (strtoul(getenv("YATL_REPEAT"), (char **) NULL, 10) > 1)) - { - opt_repeat= strtoul(getenv("YATL_REPEAT"), (char **) NULL, 10); - } - - if ((bool(getenv("YATL_QUIET")) and (strcmp(getenv("YATL_QUIET"), "0") == 0)) or opt_quiet) - { - opt_quiet= true; - } - else if (getenv("JENKINS_URL")) - { - if (bool(getenv("YATL_QUIET")) and (strcmp(getenv("YATL_QUIET"), "1") == 0)) - { } - else - { - opt_quiet= true; - } - } - - if (opt_quiet) - { - close(STDOUT_FILENO); - } - - char buffer[1024]; - if (getenv("LIBTEST_TMP")) - { - snprintf(buffer, sizeof(buffer), "%s", getenv("LIBTEST_TMP")); - } - else - { - snprintf(buffer, sizeof(buffer), "%s", LIBTEST_TEMP); - } - - if (chdir(buffer) == -1) - { - char getcwd_buffer[1024]; - char *dir= getcwd(getcwd_buffer, sizeof(getcwd_buffer)); - - Error << "Unable to chdir() from " << dir << " to " << buffer << " errno:" << strerror(errno); - return EXIT_FAILURE; - } - - if (libtest::libtool() == NULL) - { - Error << "Failed to locate libtool"; - return EXIT_FAILURE; - } - - int exit_code; - - try { - do { - exit_code= EXIT_SUCCESS; - Framework world; - - fatal_assert(sigignore(SIGPIPE) == 0); - - libtest::SignalThread signal; - if (signal.setup() == false) - { - Error << "Failed to setup signals"; - return EXIT_FAILURE; - } - - Stats stats; - - get_world(&world); - - test_return_t error; - void *creators_ptr= world.create(error); - - switch (error) - { - case TEST_SUCCESS: - break; - - case TEST_SKIPPED: - Out << "SKIP " << argv[0]; - return EXIT_SUCCESS; - - case TEST_FAILURE: - return EXIT_FAILURE; - } - - if (getenv("YATL_COLLECTION_TO_RUN")) - { - if (strlen(getenv("YATL_COLLECTION_TO_RUN"))) - { - collection_to_run= getenv("YATL_COLLECTION_TO_RUN"); - } - } - - if (collection_to_run.compare("none") == 0) - { - return EXIT_SUCCESS; - } - - if (collection_to_run.empty() == false) - { - Out << "Only testing " << collection_to_run; - } - - char *wildcard= NULL; - if (argc == 3) - { - wildcard= argv[2]; - } - - for (collection_st *next= world.collections; next and next->name and (not signal.is_shutdown()); next++) - { - bool failed= false; - bool skipped= false; - - if (collection_to_run.empty() == false and fnmatch(collection_to_run.c_str(), next->name, 0)) - { - continue; - } - - stats.collection_total++; - - test_return_t collection_rc= world.startup(creators_ptr); - - if (collection_rc == TEST_SUCCESS and next->pre) - { - collection_rc= world.runner()->pre(next->pre, creators_ptr); - } - - switch (collection_rc) - { - case TEST_SUCCESS: - break; - - case TEST_FAILURE: - Out << next->name << " [ failed ]"; - failed= true; - signal.set_shutdown(SHUTDOWN_GRACEFUL); - goto cleanup; - - case TEST_SKIPPED: - Out << next->name << " [ skipping ]"; - skipped= true; - goto cleanup; - - default: - fatal_message("invalid return code"); - } - - Out << "Collection: " << next->name; - - for (test_st *run= next->tests; run->name; run++) - { - struct timeval start_time, end_time; - long int load_time= 0; - - if (wildcard && fnmatch(wildcard, run->name, 0)) - { - continue; - } - - test_return_t return_code; - try { - if (test_success(return_code= world.item.startup(creators_ptr))) - { - if (test_success(return_code= world.item.flush(creators_ptr, run))) - { - // @note pre will fail is SKIPPED is returned - if (test_success(return_code= world.item.pre(creators_ptr))) - { - { // Runner Code - gettimeofday(&start_time, NULL); - assert(world.runner()); - assert(run->test_fn); - try - { - return_code= world.runner()->run(run->test_fn, creators_ptr); - } - // Special case where check for the testing of the exception - // system. - catch (libtest::fatal &e) - { - if (fatal::is_disabled()) - { - fatal::increment_disabled_counter(); - return_code= TEST_SUCCESS; - } - else - { - throw; - } - } - - gettimeofday(&end_time, NULL); - load_time= timedif(end_time, start_time); - } - } - - // @todo do something if post fails - (void)world.item.post(creators_ptr); - } - else if (return_code == TEST_SKIPPED) - { } - else if (return_code == TEST_FAILURE) - { - Error << " item.flush(failure)"; - signal.set_shutdown(SHUTDOWN_GRACEFUL); - } - } - else if (return_code == TEST_SKIPPED) - { } - else if (return_code == TEST_FAILURE) - { - Error << " item.startup(failure)"; - signal.set_shutdown(SHUTDOWN_GRACEFUL); - } - } - - catch (libtest::fatal &e) - { - Error << "Fatal exception was thrown: " << e.what(); - return_code= TEST_FAILURE; - } - catch (std::exception &e) - { - Error << "Exception was thrown: " << e.what(); - return_code= TEST_FAILURE; - } - catch (...) - { - Error << "Unknown exception occurred"; - return_code= TEST_FAILURE; - } - - stats.total++; - - switch (return_code) - { - case TEST_SUCCESS: - Out << "\tTesting " << run->name << "\t\t\t\t\t" << load_time / 1000 << "." << load_time % 1000 << "[ " << test_strerror(return_code) << " ]"; - stats.success++; - break; - - case TEST_FAILURE: - stats.failed++; - failed= true; - Out << "\tTesting " << run->name << "\t\t\t\t\t" << "[ " << test_strerror(return_code) << " ]"; - break; - - case TEST_SKIPPED: - stats.skipped++; - skipped= true; - Out << "\tTesting " << run->name << "\t\t\t\t\t" << "[ " << test_strerror(return_code) << " ]"; - break; - - default: - fatal_message("invalid return code"); - } - - if (test_failed(world.on_error(return_code, creators_ptr))) - { - Error << "Failed while running on_error()"; - signal.set_shutdown(SHUTDOWN_GRACEFUL); - break; - } - } - - (void) world.runner()->post(next->post, creators_ptr); - -cleanup: - if (failed == false and skipped == false) - { - stats.collection_success++; - } - - if (failed) - { - stats.collection_failed++; - } - - if (skipped) - { - stats.collection_skipped++; - } - - world.shutdown(creators_ptr); - Outn(); - } - - if (not signal.is_shutdown()) - { - signal.set_shutdown(SHUTDOWN_GRACEFUL); - } - - shutdown_t status= signal.get_shutdown(); - if (status == SHUTDOWN_FORCED) - { - Out << "Tests were aborted."; - exit_code= EXIT_FAILURE; - } - else if (stats.collection_failed) - { - Out << "Some test failed."; - exit_code= EXIT_FAILURE; - } - else if (stats.collection_skipped and stats.collection_failed and stats.collection_success) - { - Out << "Some tests were skipped."; - } - else if (stats.collection_success and stats.collection_failed == 0) - { - Out << "All tests completed successfully."; - } - - stats_print(&stats); - - Outn(); // Generate a blank to break up the messages if make check/test has been run - } while (exit_code == EXIT_SUCCESS and --opt_repeat); - } - catch (libtest::fatal& e) - { - std::cerr << e.what() << std::endl; - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - catch (...) - { - std::cerr << "Unknown exception halted execution." << std::endl; - } - - return exit_code; -} diff --git a/libtest/unittest.cc b/libtest/unittest.cc index de3e6f50..f884af33 100644 --- a/libtest/unittest.cc +++ b/libtest/unittest.cc @@ -154,6 +154,12 @@ static test_return_t var_log_exists_test(void *) return TEST_SUCCESS; } +static test_return_t var_drizzle_exists_test(void *) +{ + test_compare(0, access("var/drizzle", R_OK | W_OK | X_OK)); + return TEST_SUCCESS; +} + static test_return_t var_tmp_test(void *) { FILE *file= fopen("var/tmp/junk", "w+"); @@ -180,6 +186,14 @@ static test_return_t var_log_test(void *) return TEST_SUCCESS; } +static test_return_t var_drizzle_test(void *) +{ + FILE *file= fopen("var/drizzle/junk", "w+"); + test_true(file); + fclose(file); + return TEST_SUCCESS; +} + static test_return_t var_tmp_rm_test(void *) { test_true(unlink("var/tmp/junk") == 0); @@ -198,6 +212,12 @@ static test_return_t var_log_rm_test(void *) return TEST_SUCCESS; } +static test_return_t var_drizzle_rm_test(void *) +{ + test_true(unlink("var/drizzle/junk") == 0); + return TEST_SUCCESS; +} + static test_return_t _compare_test_return_t_test(void *) { test_compare(TEST_SUCCESS, TEST_SUCCESS); @@ -225,6 +245,22 @@ static test_return_t _compare_gearman_return_t_test(void *) return TEST_SUCCESS; } +static test_return_t drizzled_cycle_test(void *object) +{ + server_startup_st *servers= (server_startup_st*)object; + test_true(servers and servers->validate()); + +#if defined(HAVE_GEARMAND_BINARY) && HAVE_GEARMAND_BINARY + test_true(has_drizzled_binary()); +#endif + + test_skip(true, has_drizzled_binary()); + + test_true(server_startup(*servers, "drizzled", get_free_port(), 0, NULL)); + + return TEST_SUCCESS; +} + static test_return_t gearmand_cycle_test(void *object) { server_startup_st *servers= (server_startup_st*)object; @@ -384,6 +420,7 @@ static test_return_t application_doesnotexist_BINARY(void *) test_skip_valgrind(); Application true_app("doesnotexist"); + true_app.will_fail(); const char *args[]= { "--fubar", 0 }; #if defined(TARGET_OS_OSX) && TARGET_OS_OSX @@ -710,6 +747,18 @@ static test_return_t check_for_gearman(void *) return TEST_SUCCESS; } +static test_return_t check_for_drizzle(void *) +{ + test_skip(true, HAVE_LIBDRIZZLE); + test_skip(true, has_drizzled_binary()); + return TEST_SUCCESS; +} + + +test_st drizzled_tests[] ={ + {"drizzled startup-shutdown", 0, drizzled_cycle_test }, + {0, 0, 0} +}; test_st gearmand_tests[] ={ #if 0 @@ -768,12 +817,15 @@ test_st directories_tests[] ={ {"var/tmp exists", 0, var_tmp_exists_test }, {"var/run exists", 0, var_run_exists_test }, {"var/log exists", 0, var_log_exists_test }, + {"var/drizzle exists", 0, var_drizzle_exists_test }, {"var/tmp", 0, var_tmp_test }, {"var/run", 0, var_run_test }, {"var/log", 0, var_log_test }, + {"var/drizzle", 0, var_drizzle_test }, {"var/tmp rm", 0, var_tmp_rm_test }, {"var/run rm", 0, var_run_rm_test }, {"var/log rm", 0, var_log_rm_test }, + {"var/drizzle rm", 0, var_drizzle_rm_test }, {0, 0, 0} }; @@ -868,6 +920,7 @@ collection_st collection[] ={ {"comparison", 0, 0, comparison_tests}, {"gearmand", check_for_gearman, 0, gearmand_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}, {"http", check_for_curl, 0, http_tests}, diff --git a/tests/failure.cc b/tests/failure.cc index ccc32f39..4d81ecd4 100644 --- a/tests/failure.cc +++ b/tests/failure.cc @@ -227,7 +227,7 @@ void get_world(Framework *world) world->collection_startup= (test_callback_fn*)world_container_startup; world->collection_shutdown= (test_callback_fn*)world_container_shutdown; - world->set_runner(&defualt_libmemcached_runner); + world->set_runner(new LibmemcachedRunner); global_framework= world; } diff --git a/tests/include.am b/tests/include.am index c0d7771c..ff5223fe 100644 --- a/tests/include.am +++ b/tests/include.am @@ -25,6 +25,7 @@ noinst_HEADERS+= tests/keys.hpp noinst_HEADERS+= tests/hash_results.h noinst_HEADERS+= tests/libmemcached_world.h noinst_HEADERS+= tests/libmemcached_world_socket.h +noinst_HEADERS+= tests/runner.h # Cycle should always run first tests_cycle_CFLAGS= $(AM_CFLAGS) $(NO_CONVERSION) $(NO_STRICT_ALIASING) @@ -39,7 +40,14 @@ noinst_PROGRAMS+= tests/cycle include tests/libmemcached-1.0/include.am -tests_failure_SOURCES= tests/failure.cc +tests_failure_SOURCES= +tests_failure_SOURCES+= tests/failure.cc +tests_failure_SOURCES+= clients/execute.cc +tests_failure_SOURCES+= clients/generator.cc +tests_failure_SOURCES+= tests/libmemcached-1.0/callback_counter.cc +tests_failure_SOURCES+= tests/libmemcached-1.0/fetch_all_results.cc +tests_failure_SOURCES+= tests/libmemcached-1.0/generate.cc + tests_failure_CXXFLAGS = $(AM_CXXFLAGS) tests_failure_DEPENDENCIES= $(TESTS_LDADDS) tests_failure_LDADD= $(tests_failure_DEPENDENCIES) diff --git a/tests/libmemcached-1.0/all_tests.cc b/tests/libmemcached-1.0/all_tests.cc index 6121e628..5e2882c6 100644 --- a/tests/libmemcached-1.0/all_tests.cc +++ b/tests/libmemcached-1.0/all_tests.cc @@ -96,7 +96,7 @@ void get_world(Framework *world) world->collection_startup= (test_callback_fn*)world_container_startup; world->collection_shutdown= (test_callback_fn*)world_container_shutdown; - world->set_runner(&defualt_libmemcached_runner); + world->set_runner(new LibmemcachedRunner); world->set_socket(); } diff --git a/tests/libmemcached-1.0/all_tests.h b/tests/libmemcached-1.0/all_tests.h index 4dab69ff..15d6ff28 100644 --- a/tests/libmemcached-1.0/all_tests.h +++ b/tests/libmemcached-1.0/all_tests.h @@ -282,12 +282,14 @@ test_st ketama_compatibility[]= { }; test_st generate_tests[] ={ - {"generate_pairs", true, (test_callback_fn*)generate_pairs }, {"generate_data", true, (test_callback_fn*)generate_data }, {"get_read", false, (test_callback_fn*)get_read }, {"delete_generate", false, (test_callback_fn*)delete_generate }, - {"generate_buffer_data", true, (test_callback_fn*)generate_buffer_data }, - {"delete_buffer", false, (test_callback_fn*)delete_buffer_generate}, + {"cleanup", true, (test_callback_fn*)cleanup_pairs }, + {0, 0, (test_callback_fn*)0} +}; + // New start +test_st generate_mget_TESTS[] ={ {"generate_data", true, (test_callback_fn*)generate_data }, {"mget_read", false, (test_callback_fn*)mget_read }, {"mget_read_result", false, (test_callback_fn*)mget_read_result }, @@ -295,15 +297,16 @@ test_st generate_tests[] ={ {"memcached_fetch_result() partial read", false, (test_callback_fn*)mget_read_partial_result }, {"mget_read_function", false, (test_callback_fn*)mget_read_function }, {"cleanup", true, (test_callback_fn*)cleanup_pairs }, + {0, 0, (test_callback_fn*)0} +}; + +test_st generate_large_TESTS[] ={ {"generate_large_pairs", true, (test_callback_fn*)generate_large_pairs }, - {"generate_data", true, (test_callback_fn*)generate_data }, - {"generate_buffer_data", true, (test_callback_fn*)generate_buffer_data }, {"cleanup", true, (test_callback_fn*)cleanup_pairs }, {0, 0, (test_callback_fn*)0} }; test_st consistent_tests[] ={ - {"generate_pairs", true, (test_callback_fn*)generate_pairs }, {"generate_data", true, (test_callback_fn*)generate_data }, {"get_read", 0, (test_callback_fn*)get_read_count }, {"cleanup", true, (test_callback_fn*)cleanup_pairs }, @@ -311,7 +314,6 @@ test_st consistent_tests[] ={ }; test_st consistent_weighted_tests[] ={ - {"generate_pairs", true, (test_callback_fn*)generate_pairs }, {"generate_data", true, (test_callback_fn*)generate_data_with_stats }, {"get_read", false, (test_callback_fn*)get_read_count }, {"cleanup", true, (test_callback_fn*)cleanup_pairs }, @@ -468,6 +470,9 @@ collection_st collection[] ={ {"Cal Haldenbrand's tests", 0, 0, haldenbrand_TESTS}, {"user written tests", 0, 0, user_tests}, {"generate", 0, 0, generate_tests}, + {"generate MEMCACHED_BEHAVIOR_BUFFER_REQUESTS", (test_callback_fn*)pre_buffer, 0, generate_tests}, + {"mget generate MEMCACHED_BEHAVIOR_BUFFER_REQUESTS", (test_callback_fn*)pre_buffer, 0, generate_mget_TESTS}, + {"generate large", 0, 0, generate_large_TESTS}, {"generate_hsieh", (test_callback_fn*)pre_hsieh, 0, generate_tests}, {"generate_ketama", (test_callback_fn*)pre_behavior_ketama, 0, generate_tests}, {"generate_hsieh_consistent", (test_callback_fn*)enable_consistent_hsieh, 0, generate_tests}, @@ -475,9 +480,7 @@ collection_st collection[] ={ {"generate_murmur", (test_callback_fn*)pre_murmur, 0, generate_tests}, {"generate_jenkins", (test_callback_fn*)pre_jenkins, 0, generate_tests}, {"generate_nonblock", (test_callback_fn*)pre_nonblock, 0, generate_tests}, - // Too slow - {"generate_corked", (test_callback_fn*)pre_cork, 0, generate_tests}, - {"generate_corked_and_nonblock", (test_callback_fn*)pre_cork_and_nonblock, 0, generate_tests}, + {"mget generate_nonblock", (test_callback_fn*)pre_nonblock, 0, generate_mget_TESTS}, {"consistent_not", 0, 0, consistent_tests}, {"consistent_ketama", (test_callback_fn*)pre_behavior_ketama, 0, consistent_tests}, {"consistent_ketama_weighted", (test_callback_fn*)pre_behavior_ketama_weighted, 0, consistent_weighted_tests}, diff --git a/tests/libmemcached-1.0/all_tests_socket.cc b/tests/libmemcached-1.0/all_tests_socket.cc index b9342cf3..6398c1eb 100644 --- a/tests/libmemcached-1.0/all_tests_socket.cc +++ b/tests/libmemcached-1.0/all_tests_socket.cc @@ -85,5 +85,5 @@ void get_world(Framework *world) world->collection_startup= (test_callback_fn*)world_container_startup; world->collection_shutdown= (test_callback_fn*)world_container_shutdown; - world->set_runner(&defualt_libmemcached_runner); + world->set_runner(new LibmemcachedRunner); } diff --git a/tests/libmemcached-1.0/atomsmasher.cc b/tests/libmemcached-1.0/atomsmasher.cc index ad4483ed..23d6dd23 100644 --- a/tests/libmemcached-1.0/atomsmasher.cc +++ b/tests/libmemcached-1.0/atomsmasher.cc @@ -293,5 +293,5 @@ void get_world(Framework *world) world->collection_startup= (test_callback_fn*)world_container_startup; world->collection_shutdown= (test_callback_fn*)world_container_shutdown; - world->set_runner(&defualt_libmemcached_runner); + world->set_runner(new LibmemcachedRunner); } diff --git a/tests/libmemcached-1.0/generate.cc b/tests/libmemcached-1.0/generate.cc index da31fe0c..9f677584 100644 --- a/tests/libmemcached-1.0/generate.cc +++ b/tests/libmemcached-1.0/generate.cc @@ -53,20 +53,20 @@ using namespace libtest; -static pairs_st *global_pairs; +static pairs_st *global_pairs= NULL; static const char *global_keys[GLOBAL_COUNT]; static size_t global_keys_length[GLOBAL_COUNT]; static size_t global_count= 0; -test_return_t cleanup_pairs(memcached_st *memc) +test_return_t cleanup_pairs(memcached_st*) { - (void)memc; pairs_free(global_pairs); + global_pairs= NULL; return TEST_SUCCESS; } -test_return_t generate_pairs(memcached_st *) +static test_return_t generate_pairs(memcached_st *) { global_pairs= pairs_generate(GLOBAL_COUNT, 400); global_count= GLOBAL_COUNT; @@ -80,7 +80,7 @@ test_return_t generate_pairs(memcached_st *) return TEST_SUCCESS; } -test_return_t generate_large_pairs(memcached_st *) +test_return_t generate_large_pairs(memcached_st *memc) { global_pairs= pairs_generate(GLOBAL2_COUNT, MEMCACHED_MAX_BUFFER+10); global_count= GLOBAL2_COUNT; @@ -91,11 +91,18 @@ test_return_t generate_large_pairs(memcached_st *) global_keys_length[x]= global_pairs[x].key_length; } + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_BUFFER_REQUESTS, true); + unsigned int check_execute= execute_set(memc, global_pairs, global_count); + + test_compare_warn_hint(global_count, check_execute, "Possible false, positive, memcached may have ejected key/value based on memory needs"); + return TEST_SUCCESS; } test_return_t generate_data(memcached_st *memc) { + test_compare(TEST_SUCCESS, generate_pairs(memc)); + unsigned int check_execute= execute_set(memc, global_pairs, global_count); test_compare_warn_hint(global_count, check_execute, "Possible false, positive, memcached may have ejected key/value based on memory needs"); @@ -105,6 +112,8 @@ test_return_t generate_data(memcached_st *memc) test_return_t generate_data_with_stats(memcached_st *memc) { + test_compare(TEST_SUCCESS, generate_pairs(memc)); + unsigned int check_execute= execute_set(memc, global_pairs, global_count); test_compare(check_execute, global_count); diff --git a/tests/libmemcached-1.0/generate.h b/tests/libmemcached-1.0/generate.h index eacb6026..bd4855a9 100644 --- a/tests/libmemcached-1.0/generate.h +++ b/tests/libmemcached-1.0/generate.h @@ -44,7 +44,6 @@ test_return_t generate_buffer_data(memcached_st*); test_return_t generate_data(memcached_st*); test_return_t generate_data_with_stats(memcached_st*); test_return_t generate_large_pairs(memcached_st *); -test_return_t generate_pairs(memcached_st*); test_return_t get_read(memcached_st*); test_return_t get_read_count(memcached_st*); test_return_t mget_read(memcached_st*); diff --git a/tests/libmemcached-1.0/include.am b/tests/libmemcached-1.0/include.am index 186e655b..d4b3fc14 100644 --- a/tests/libmemcached-1.0/include.am +++ b/tests/libmemcached-1.0/include.am @@ -56,9 +56,11 @@ tests_libmemcached_1_0_testapp_CXXFLAGS = $(AM_CXXFLAGS) ${PTHREAD_CFLAGS} tests_libmemcached_1_0_testapp_CFLAGS= $(AM_CFLAGS) $(NO_CONVERSION) $(NO_STRICT_ALIASING) tests_libmemcached_1_0_testapp_SOURCES= tests_libmemcached_1_0_testapp_SOURCES+= tests/libmemcached-1.0/all_tests.cc +tests_libmemcached_1_0_testapp_SOURCES+= tests/libmemcached-1.0/callback_counter.cc +tests_libmemcached_1_0_testapp_SOURCES+= tests/libmemcached-1.0/fetch_all_results.cc +tests_libmemcached_1_0_testapp_SOURCES+= tests/libmemcached-1.0/generate.cc tests_libmemcached_1_0_testapp_SOURCES+= \ tests/libmemcached-1.0/basic.cc \ - tests/libmemcached-1.0/callback_counter.cc \ tests/libmemcached-1.0/callbacks.cc \ tests/libmemcached-1.0/debug.cc \ tests/libmemcached-1.0/deprecated.cc \ @@ -66,8 +68,6 @@ tests_libmemcached_1_0_testapp_SOURCES+= \ tests/libmemcached-1.0/encoding_key.cc \ tests/libmemcached-1.0/error_conditions.cc \ tests/libmemcached-1.0/exist.cc \ - tests/libmemcached-1.0/fetch_all_results.cc \ - tests/libmemcached-1.0/generate.cc \ tests/libmemcached-1.0/haldenbrand.cc \ tests/libmemcached-1.0/ketama.cc \ tests/libmemcached-1.0/mem_functions.cc \ @@ -106,7 +106,6 @@ tests_libmemcached_1_0_testsocket_CFLAGS= $(AM_CFLAGS) $(NO_CONVERSION) $(NO_STR tests_libmemcached_1_0_testsocket_SOURCES= \ tests/libmemcached-1.0/all_tests_socket.cc \ tests/libmemcached-1.0/basic.cc \ - tests/libmemcached-1.0/callback_counter.cc \ tests/libmemcached-1.0/callbacks.cc \ tests/libmemcached-1.0/debug.cc \ tests/libmemcached-1.0/deprecated.cc \ @@ -114,8 +113,6 @@ tests_libmemcached_1_0_testsocket_SOURCES= \ tests/libmemcached-1.0/encoding_key.cc \ tests/libmemcached-1.0/error_conditions.cc \ tests/libmemcached-1.0/exist.cc \ - tests/libmemcached-1.0/fetch_all_results.cc \ - tests/libmemcached-1.0/generate.cc \ tests/libmemcached-1.0/haldenbrand.cc \ tests/libmemcached-1.0/ketama.cc \ tests/libmemcached-1.0/mem_functions.cc \ @@ -131,7 +128,11 @@ tests_libmemcached_1_0_testsocket_SOURCES= \ tests/libmemcached-1.0/touch.cc \ tests/libmemcached-1.0/virtual_buckets.cc -tests_libmemcached_1_0_testsocket_SOURCES+= clients/generator.cc clients/execute.cc +tests_libmemcached_1_0_testsocket_SOURCES+= clients/generator.cc +tests_libmemcached_1_0_testsocket_SOURCES+= clients/execute.cc +tests_libmemcached_1_0_testsocket_SOURCES+= tests/libmemcached-1.0/generate.cc +tests_libmemcached_1_0_testsocket_SOURCES+= tests/libmemcached-1.0/callback_counter.cc +tests_libmemcached_1_0_testsocket_SOURCES+= tests/libmemcached-1.0/fetch_all_results.cc tests_libmemcached_1_0_testsocket_DEPENDENCIES= \ libmemcached/libmemcached.la \ libtest/libtest.la \ @@ -164,7 +165,12 @@ tests_libmemcached_1_0_sasl_SOURCES= \ tests/libmemcached-1.0/replication.cc \ tests/libmemcached-1.0/sasl.cc \ tests/libmemcached-1.0/virtual_buckets.cc -tests_libmemcached_1_0_sasl_SOURCES+= clients/generator.cc clients/execute.cc +tests_libmemcached_1_0_sasl_SOURCES+= clients/execute.cc +tests_libmemcached_1_0_sasl_SOURCES+= clients/generator.cc +tests_libmemcached_1_0_sasl_SOURCES+= tests/libmemcached-1.0/callback_counter.cc +tests_libmemcached_1_0_sasl_SOURCES+= tests/libmemcached-1.0/fetch_all_results.cc +tests_libmemcached_1_0_sasl_SOURCES+= tests/libmemcached-1.0/generate.cc + tests_libmemcached_1_0_sasl_DEPENDENCIES= \ libmemcached/libmemcached.la \ libtest/libtest.la @@ -188,7 +194,15 @@ tests_atomsmasher_LDADD= $(tests_atomsmasher_DEPENDENCIES) noinst_PROGRAMS+= tests/atomsmasher tests_testudp_CFLAGS= $(AM_CFLAGS) $(NO_CONVERSION) $(NO_STRICT_ALIASING) -tests_testudp_SOURCES= tests/mem_udp.cc +tests_testudp_SOURCES= + +tests_testudp_SOURCES+= tests/mem_udp.cc +tests_testudp_SOURCES+= clients/execute.cc +tests_testudp_SOURCES+= clients/generator.cc +tests_testudp_SOURCES+= tests/libmemcached-1.0/callback_counter.cc +tests_testudp_SOURCES+= tests/libmemcached-1.0/fetch_all_results.cc +tests_testudp_SOURCES+= tests/libmemcached-1.0/generate.cc + tests_testudp_DEPENDENCIES= $(TESTS_LDADDS) tests_testudp_LDADD= $(tests_testudp_DEPENDENCIES) check_PROGRAMS+= tests/testudp @@ -197,7 +211,15 @@ noinst_PROGRAMS+= tests/testudp test-udp: tests/testudp @tests/testudp -tests_testplus_SOURCES= tests/libmemcached-1.0/plus.cpp +tests_testplus_SOURCES= + +tests_testplus_SOURCES+= tests/libmemcached-1.0/plus.cpp +tests_testplus_SOURCES+= clients/execute.cc +tests_testplus_SOURCES+= clients/generator.cc +tests_testplus_SOURCES+= tests/libmemcached-1.0/callback_counter.cc +tests_testplus_SOURCES+= tests/libmemcached-1.0/fetch_all_results.cc +tests_testplus_SOURCES+= tests/libmemcached-1.0/generate.cc + tests_testplus_CXXFLAGS = $(AM_CXXFLAGS) $(NO_EFF_CXX) tests_testplus_DEPENDENCIES= $(TESTS_LDADDS) tests_testplus_LDADD= $(tests_testplus_DEPENDENCIES) diff --git a/tests/libmemcached-1.0/mem_functions.cc b/tests/libmemcached-1.0/mem_functions.cc index fce23b84..e39c2a8b 100644 --- a/tests/libmemcached-1.0/mem_functions.cc +++ b/tests/libmemcached-1.0/mem_functions.cc @@ -646,7 +646,12 @@ test_return_t memcached_mget_mixed_memcached_get_TEST(memcached_st *memc) memcached_return_t rc; char *out_value= memcached_get(memc, keys.key_at(which_key), keys.length_at(which_key), &value_length, &flags, &rc); - test_compare(MEMCACHED_SUCCESS, rc); + if (rc == MEMCACHED_NOTFOUND) + { } // It is possible that the value has been purged. + else + { + test_compare_hint(MEMCACHED_SUCCESS, rc, memcached_last_error_message(memc)); + } test_null(out_value); test_zero(value_length); test_zero(flags); diff --git a/tests/libmemcached-1.0/plus.cpp b/tests/libmemcached-1.0/plus.cpp index 5078f1f5..5b3f7e88 100644 --- a/tests/libmemcached-1.0/plus.cpp +++ b/tests/libmemcached-1.0/plus.cpp @@ -300,5 +300,5 @@ void get_world(Framework *world) world->collection_startup= reinterpret_cast(world_container_startup); world->collection_shutdown= reinterpret_cast(world_container_shutdown); - world->set_runner(&defualt_libmemcached_runner); + world->set_runner(new LibmemcachedRunner); } diff --git a/tests/libmemcached-1.0/sasl.cc b/tests/libmemcached-1.0/sasl.cc index ee8b5e67..bbf905d9 100644 --- a/tests/libmemcached-1.0/sasl.cc +++ b/tests/libmemcached-1.0/sasl.cc @@ -115,7 +115,7 @@ void get_world(Framework *world) world->collection_startup= (test_callback_fn*)world_container_startup; world->collection_shutdown= (test_callback_fn*)world_container_shutdown; - world->set_runner(&defualt_libmemcached_runner); + world->set_runner(new LibmemcachedRunner); world->set_sasl("memcached", "memcached"); } diff --git a/tests/libmemcached-1.0/setup_and_teardowns.cc b/tests/libmemcached-1.0/setup_and_teardowns.cc index 093be490..95ba4c8d 100644 --- a/tests/libmemcached-1.0/setup_and_teardowns.cc +++ b/tests/libmemcached-1.0/setup_and_teardowns.cc @@ -67,6 +67,13 @@ test_return_t pre_binary(memcached_st *memc) return TEST_SUCCESS; } +test_return_t pre_buffer(memcached_st *memc) +{ + test_skip(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_BUFFER_REQUESTS, true)); + + return TEST_SUCCESS; +} + test_return_t pre_unix_socket(memcached_st *memc) { struct stat buf; @@ -218,30 +225,6 @@ test_return_t pre_nonblock(memcached_st *memc) return TEST_SUCCESS; } -test_return_t pre_cork(memcached_st *memc) -{ -#ifdef __APPLE__ - return TEST_SKIPPED; -#endif - bool set= true; - if (memcached_success(memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_CORK, set))) - return TEST_SUCCESS; - - return TEST_SKIPPED; -} - -test_return_t pre_cork_and_nonblock(memcached_st *memc) -{ -#ifdef __APPLE__ - return TEST_SKIPPED; -#endif - test_return_t test_rc; - if ((test_rc= pre_cork(memc)) != TEST_SUCCESS) - return test_rc; - - return pre_nonblock(memc); -} - test_return_t pre_nonblock_binary(memcached_st *memc) { memcached_st *memc_clone= memcached_clone(NULL, memc); diff --git a/tests/libmemcached-1.0/setup_and_teardowns.h b/tests/libmemcached-1.0/setup_and_teardowns.h index fa6fbdf2..655cab44 100644 --- a/tests/libmemcached-1.0/setup_and_teardowns.h +++ b/tests/libmemcached-1.0/setup_and_teardowns.h @@ -60,3 +60,4 @@ test_return_t pre_replication(memcached_st*); test_return_t pre_replication_noblock(memcached_st*); test_return_t pre_settimer(memcached_st*); test_return_t pre_unix_socket(memcached_st*); +test_return_t pre_buffer(memcached_st*); diff --git a/tests/libmemcached_world.h b/tests/libmemcached_world.h index 5fab96fe..c31b303f 100644 --- a/tests/libmemcached_world.h +++ b/tests/libmemcached_world.h @@ -208,67 +208,4 @@ static bool world_destroy(void *object) typedef test_return_t (*libmemcached_test_callback_fn)(memcached_st *); -class LibmemcachedRunner : public libtest::Runner { -public: - test_return_t run(test_callback_fn* func, void *object) - { - return _runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); - } - - test_return_t pre(test_callback_fn* func, void *object) - { - return _pre_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); - } - - test_return_t post(test_callback_fn* func, void *object) - { - return _post_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); - } - -private: - test_return_t _runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) - { - test_compare(true, check()); - - if (func) - { - test_true(container); - test_true(container->memc); - test_return_t ret; - try { - ret= func(container->memc); - } - catch (std::exception& e) - { - libtest::Error << e.what(); - return TEST_FAILURE; - } - - return ret; - } - - return TEST_SUCCESS; - } - - test_return_t _pre_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) - { - if (func) - { - return func(container->parent); - } - - return TEST_SUCCESS; - } - - test_return_t _post_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) - { - if (func) - { - return func(container->parent); - } - - return TEST_SUCCESS; - } -}; - -static LibmemcachedRunner defualt_libmemcached_runner; +#include "tests/runner.h" diff --git a/tests/libmemcached_world_socket.h b/tests/libmemcached_world_socket.h index b1748cab..8016dba4 100644 --- a/tests/libmemcached_world_socket.h +++ b/tests/libmemcached_world_socket.h @@ -190,64 +190,4 @@ static bool world_destroy(void *object) typedef test_return_t (*libmemcached_test_callback_fn)(memcached_st *); -static test_return_t _runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) -{ - if (func) - { - test_true(container); - test_true(container->memc); - test_return_t ret; - try { - ret= func(container->memc); - } - catch (std::exception& e) - { - libtest::Error << e.what(); - return TEST_FAILURE; - } - - return ret; - } - - return TEST_SUCCESS; -} - -static test_return_t _pre_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) -{ - if (func) - { - return func(container->parent); - } - - return TEST_SUCCESS; -} - -static test_return_t _post_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) -{ - if (func) - { - return func(container->parent); - } - - return TEST_SUCCESS; -} - -class LibmemcachedRunner : public libtest::Runner { -public: - test_return_t run(test_callback_fn* func, void *object) - { - return _runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); - } - - test_return_t pre(test_callback_fn* func, void *object) - { - return _pre_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); - } - - test_return_t post(test_callback_fn* func, void *object) - { - return _post_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); - } -}; - -static LibmemcachedRunner defualt_libmemcached_runner; +#include "tests/runner.h" diff --git a/tests/mem_udp.cc b/tests/mem_udp.cc index 713885fd..3a97d849 100644 --- a/tests/mem_udp.cc +++ b/tests/mem_udp.cc @@ -580,5 +580,5 @@ void get_world(Framework *world) world->collection_startup= (test_callback_fn*)world_container_startup; world->collection_shutdown= (test_callback_fn*)world_container_shutdown; - world->set_runner(&defualt_libmemcached_runner); + world->set_runner(new LibmemcachedRunner); } diff --git a/tests/runner.h b/tests/runner.h new file mode 100644 index 00000000..deb685af --- /dev/null +++ b/tests/runner.h @@ -0,0 +1,110 @@ +/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: + * + * Libmemcached Client and Server + * + * Copyright (C) 2012 Data Differential, http://datadifferential.com/ + * All rights reserved. + * + * 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 + +#include "tests/libmemcached-1.0/generate.h" + +class LibmemcachedRunner : public libtest::Runner { +public: + test_return_t run(test_callback_fn* func, void *object) + { + return _runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); + } + + test_return_t pre(test_callback_fn* func, void *object) + { + return _pre_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); + } + + test_return_t post(test_callback_fn* func, void *object) + { + return _post_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object); + } + +private: + test_return_t _runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) + { + test_compare(true, check()); + + if (func) + { + test_true(container); + test_true(container->memc); + test_return_t ret; + try { + ret= func(container->memc); + } + catch (std::exception& e) + { + libtest::Error << e.what(); + return TEST_FAILURE; + } + + return ret; + } + + return TEST_SUCCESS; + } + + test_return_t _pre_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) + { + test_compare(true, check()); + + if (func) + { + return func(container->parent); + } + + return TEST_SUCCESS; + } + + test_return_t _post_runner_default(libmemcached_test_callback_fn func, libmemcached_test_container_st *container) + { + test_compare(true, check()); + cleanup_pairs(NULL); + + if (func) + { + return func(container->parent); + } + + return TEST_SUCCESS; + } +}; +