Fixes all current issues with hashkit tests.
authorBrian Aker <brian@tangent.org>
Fri, 1 Apr 2011 19:38:02 +0000 (12:38 -0700)
committerBrian Aker <brian@tangent.org>
Fri, 1 Apr 2011 19:38:02 +0000 (12:38 -0700)
25 files changed:
libhashkit/algorithm.c
libhashkit/behavior.c
libhashkit/common.h
libhashkit/crc32.c
libhashkit/digest.c
libhashkit/fnv.c
libhashkit/function.c
libhashkit/hashkit.c
libhashkit/hashkit.h
libhashkit/hsieh.c
libhashkit/include.am
libhashkit/jenkins.c
libhashkit/ketama.c
libhashkit/md5.c
libhashkit/murmur.c
libhashkit/one_at_a_time.c
libhashkit/str_algorithm.c [new file with mode: 0644]
libhashkit/str_algorithm.h [new file with mode: 0644]
libhashkit/strerror.c
libhashkit/types.h
libmemcached/hash.c
libmemcached/memcached.h
tests/hash_plus.cc
tests/include.am
tests/mem_plus.cc [deleted file]

index 0f0f9f01e3f4107e59233423aae010bc097e911e..de00081da56c648246fdb2a7f99a72ef93b6a514 100644 (file)
@@ -6,7 +6,7 @@
  * the COPYING file in the parent directory for full text.
  */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 uint32_t libhashkit_one_at_a_time(const char *key, size_t key_length)
 {
index 683798ea5de72df0d40a1b580d00703e8b351873..ee0efcf3695d685205491c05500686bb51f49928 100644 (file)
@@ -6,4 +6,4 @@
  * the COPYING file in the parent directory for full text.
  */
 
-#include "common.h"
+#include <libhashkit/common.h>
index dff3ab0bc92eedaad6ffce0abb4ec138f20c5dfa..73b198f589aa05c5ce640c9e5b6377b00125e206 100644 (file)
@@ -9,7 +9,7 @@
 #ifndef HASHKIT_COMMON_H
 #define HASHKIT_COMMON_H
 
-#include "config.h"
+#include <config.h>
 
 #include <assert.h>
 #include <errno.h>
@@ -17,7 +17,7 @@
 #include <stdlib.h>
 #include <math.h>
 
-#include "hashkit.h"
+#include <libhashkit/hashkit.h>
 
 #ifdef __cplusplus
 extern "C" {
index b4ad8ec3907bd4446f11194c8b845656ac924d4b..f07958ca7493476a3f7be6fd6577ecd8da375eef 100644 (file)
@@ -4,7 +4,7 @@
  * src/usr.bin/cksum/crc32.c.
  */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 static const uint32_t crc32tab[256] = {
   0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
index 4ff6de29f08f11e2d5d092afbe512b00dd5f5dba..e1559819db8faff2d3f6d4e6e7b2f3e079ea449b 100644 (file)
@@ -6,7 +6,7 @@
  * the COPYING file in the parent directory for full text.
  */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 uint32_t hashkit_digest(const hashkit_st *self, const char *key, size_t key_length)
 {
index 41243813e03cab8a46ba88d82b4e1fe298af5a1b..fffb94a492aebf86815942322d9511f0825a7506 100644 (file)
@@ -6,7 +6,7 @@
  * the COPYING file in the parent directory for full text.
  */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 /* FNV hash'es lifted from Dustin Sallings work */
 static uint64_t FNV_64_INIT= UINT64_C(0xcbf29ce484222325);
index a779bb63ff51b003515c07216e4e02c74780db52..3560abd7ef273f7c0dcbeb0194a089b63bb07c05 100644 (file)
@@ -6,7 +6,7 @@
  * the COPYING file in the parent directory for full text.
  */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 static hashkit_return_t _set_function(struct hashkit_function_st *self, hashkit_hash_algorithm_t hash_algorithm)
 {
index 47c9e580c7b50df985b16ad7457939399c6eb24d..7214c1442c23ac64aa9ad6c4a8e6125c77257dd9 100644 (file)
@@ -6,7 +6,7 @@
  * the COPYING file in the parent directory for full text.
  */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 static const hashkit_st global_default_hash= {
   .base_hash= {
index 451333075f225c83641647dcd93065db946935f1..2d8ad3a2d38aafdaa66737a29921227b96deedc7 100644 (file)
 #include <libhashkit/behavior.h>
 #include <libhashkit/digest.h>
 #include <libhashkit/function.h>
+#include <libhashkit/str_algorithm.h>
 #include <libhashkit/strerror.h>
 
 #ifdef __cplusplus
-
-#include <string>
-
 extern "C" {
 #endif
 
@@ -67,57 +65,63 @@ struct hashkit_st
 };
 
 #ifdef __cplusplus
-class Hashkit : private hashkit_st {
+
+#include <string>
+
+class Hashkit {
 
 public:
 
   Hashkit()
   {
-    hashkit_create(this);
+    hashkit_create(&self);
   }
 
   Hashkit(const Hashkit& source)
   {
-    hashkit_clone(this, &source);
+    hashkit_clone(&self, &source.self);
   }
 
   Hashkit& operator=(const Hashkit& source)
   {
-    hashkit_free(this);
-    hashkit_clone(this, &source);
+    hashkit_free(&self);
+    hashkit_clone(&self, &source.self);
 
     return *this;
   }
 
   friend bool operator==(const Hashkit &left, const Hashkit &right)
   {
-    return hashkit_compare(&left, &right);
+    return hashkit_compare(&left.self, &right.self);
   }
 
   uint32_t digest(std::string& str)
   {
-    return hashkit_digest(this, str.c_str(), str.length());
+    return hashkit_digest(&self, str.c_str(), str.length());
   }
 
   uint32_t digest(const char *key, size_t key_length)
   {
-    return hashkit_digest(this, key, key_length);
+    return hashkit_digest(&self, key, key_length);
   }
 
   hashkit_return_t set_function(hashkit_hash_algorithm_t hash_algorithm)
   {
-    return hashkit_set_function(this, hash_algorithm);
+    return hashkit_set_function(&self, hash_algorithm);
   }
 
   hashkit_return_t set_distribution_function(hashkit_hash_algorithm_t hash_algorithm)
   {
-    return hashkit_set_function(this, hash_algorithm);
+    return hashkit_set_function(&self, hash_algorithm);
   }
 
   ~Hashkit()
   {
-    hashkit_free(this);
+    hashkit_free(&self);
   }
+private:
+
+  hashkit_st self;
 };
 #endif
 
index ba46ed2cdf71c3b59e1f43691703885722c7c4f5..35a2e2096c23d5c2f300a9ca877b095cc45aaabd 100644 (file)
@@ -5,7 +5,7 @@
  * http://www.azillionmonkeys.com/qed/hash.html
 */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 #undef get16bits
 #if (defined(__GNUC__) && defined(__i386__))
index f0adcdc9b1540d87e098cc0862f17ec4074cd8d7..12575dfb0cdeabc6fdb016e40cc3326c4c8cdf46 100644 (file)
@@ -23,6 +23,7 @@ nobase_include_HEADERS+= \
                         libhashkit/function.h \
                         libhashkit/hashkit.h \
                         libhashkit/strerror.h \
+                        libhashkit/str_algorithm.h \
                         libhashkit/types.h \
                         libhashkit/visibility.h
 
@@ -33,14 +34,15 @@ libhashkit_libhashkit_la_SOURCES= \
                                  libhashkit/algorithm.c \
                                  libhashkit/behavior.c \
                                  libhashkit/crc32.c \
-                                 libhashkit/fnv.c \
                                  libhashkit/digest.c \
+                                 libhashkit/fnv.c \
                                  libhashkit/function.c \
                                  libhashkit/hashkit.c \
                                  libhashkit/jenkins.c \
                                  libhashkit/ketama.c \
                                  libhashkit/md5.c \
                                  libhashkit/one_at_a_time.c \
+                                 libhashkit/str_algorithm.c \
                                  libhashkit/strerror.c
 
 if INCLUDE_HSIEH_SRC
index 53e35a8299e9d1d54687dae0b8e4a5d45b80e8bc..c2001cb5b88f88add482532a86c584d1c78d0735 100644 (file)
@@ -11,7 +11,7 @@
 * Add big endian support
 */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 #define hashsize(n) ((uint32_t)1<<(n))
 #define hashmask(n) (hashsize(n)-1)
index a510e57ab1ea802026d185cfcde3693c1fec7633..45052c22baade12761b69dd5091558bb1837dfb8 100644 (file)
@@ -6,7 +6,7 @@
  * the COPYING file in the parent directory for full text.
  */
 
-#include "common.h"
+#include <libhashkit/common.h>
 #include <math.h>
 
 #if 0
index 025c666294b8bdd09fc1a57c62697086dfb32525..1af5e6c00c834d967b148924780c32f1525422ad 100644 (file)
@@ -29,7 +29,7 @@ These notices must be retained in any copies of any part of this
 documentation and/or software.
 */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 #include <string.h>
 #include <sys/types.h>
index 78d7f1933b5e283804e6238bb6cd53bb22e8e16e..a40b11b744d819fae62d6697b27caace7d1ff578 100644 (file)
@@ -15,7 +15,7 @@
   Updated to murmur2 hash - BP
 */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 uint32_t hashkit_murmur(const char *key, size_t length, void *context)
 {
index 0c9ec31a03c37f3de6d43a33f28cdd4f9d1e022a..aeb11b121ca414ca4eb262d10f0437f6c8113fdc 100644 (file)
@@ -11,7 +11,7 @@
 http://en.wikipedia.org/wiki/Jenkins_hash_function
 */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 uint32_t hashkit_one_at_a_time(const char *key, size_t key_length, void *context)
 {
diff --git a/libhashkit/str_algorithm.c b/libhashkit/str_algorithm.c
new file mode 100644 (file)
index 0000000..0a0613b
--- /dev/null
@@ -0,0 +1,57 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  HashKit
+ *
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ *
+ *      * Redistributions of source code must retain the above copyright
+ *  notice, this list of conditions and the following disclaimer.
+ *
+ *      * Redistributions in binary form must reproduce the above
+ *  copyright notice, this list of conditions and the following disclaimer
+ *  in the documentation and/or other materials provided with the
+ *  distribution.
+ *
+ *      * The names of its contributors may not be used to endorse or
+ *  promote products derived from this software without specific prior
+ *  written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <libhashkit/common.h>
+
+const char * libhashkit_string_hash(hashkit_hash_algorithm_t type)
+{
+  switch(type)
+  {
+  case HASHKIT_HASH_DEFAULT: return "DEFAULT";
+  case HASHKIT_HASH_MD5: return "MD5";
+  case HASHKIT_HASH_CRC: return "CRC";
+  case HASHKIT_HASH_FNV1_64: return "FNV1_64";
+  case HASHKIT_HASH_FNV1A_64: return "FNV1A_64";
+  case HASHKIT_HASH_FNV1_32: return "FNV1_32";
+  case HASHKIT_HASH_FNV1A_32: return "FNV1A_32";
+  case HASHKIT_HASH_HSIEH: return "HSIEH";
+  case HASHKIT_HASH_MURMUR: return "MURMUR";
+  case HASHKIT_HASH_JENKINS: return "JENKINS";
+  case HASHKIT_HASH_CUSTOM: return "CUSTOM";
+  default:
+  case HASHKIT_HASH_MAX: return "INVALID";
+  }
+}
diff --git a/libhashkit/str_algorithm.h b/libhashkit/str_algorithm.h
new file mode 100644 (file)
index 0000000..bb05eb5
--- /dev/null
@@ -0,0 +1,48 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  HashKit
+ *
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ *
+ *      * Redistributions of source code must retain the above copyright
+ *  notice, this list of conditions and the following disclaimer.
+ *
+ *      * Redistributions in binary form must reproduce the above
+ *  copyright notice, this list of conditions and the following disclaimer
+ *  in the documentation and/or other materials provided with the
+ *  distribution.
+ *
+ *      * The names of its contributors may not be used to endorse or
+ *  promote products derived from this software without specific prior
+ *  written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HASHKIT_API
+const char *libhashkit_string_hash(hashkit_hash_algorithm_t type);
+
+#ifdef __cplusplus
+}
+#endif
index 50532e1dbffc5d08bd8f9fb89b230927e83424ab..8d7246c66ec682ac26dedecb0828519bdb283197 100644 (file)
@@ -6,7 +6,7 @@
  * the COPYING file in the parent directory for full text.
  */
 
-#include "common.h"
+#include <libhashkit/common.h>
 
 const char *hashkit_strerror(hashkit_st *ptr, hashkit_return_t rc)
 {
index 255620b838ed529a4fcc1ddce12370c4183a6785..23bd9d5c4f22d2a8b992dbd012ba2ff9a6bc7ba5 100644 (file)
@@ -1,12 +1,41 @@
-
-/* HashKit
- * Copyright (C) 2009 Brian Aker
- * All rights reserved.
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  HashKit
+ *
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *  Copyright (C) 2009 Brian Aker 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.
  *
- * Use and distribution licensed under the BSD license.  See
- * the COPYING file in the parent directory for full text.
  */
 
+
 #ifndef HASHKIT_TYPES_H
 #define HASHKIT_TYPES_H
 
index bf94642386b964e59c7fb5e34da7d147e0d205d0..e5f87a7564e9a8cd958890d28aa5d2f1afd2b80f 100644 (file)
@@ -172,20 +172,5 @@ memcached_return_t memcached_set_hashkit(memcached_st *self, hashkit_st *hashk)
 
 const char * libmemcached_string_hash(memcached_hash_t type)
 {
-  switch (type)
-  {
-  case MEMCACHED_HASH_DEFAULT: return "MEMCACHED_HASH_DEFAULT";
-  case MEMCACHED_HASH_MD5: return "MEMCACHED_HASH_MD5";
-  case MEMCACHED_HASH_CRC: return "MEMCACHED_HASH_CRC";
-  case MEMCACHED_HASH_FNV1_64: return "MEMCACHED_HASH_FNV1_64";
-  case MEMCACHED_HASH_FNV1A_64: return "MEMCACHED_HASH_FNV1A_64";
-  case MEMCACHED_HASH_FNV1_32: return "MEMCACHED_HASH_FNV1_32";
-  case MEMCACHED_HASH_FNV1A_32: return "MEMCACHED_HASH_FNV1A_32";
-  case MEMCACHED_HASH_HSIEH: return "MEMCACHED_HASH_HSIEH";
-  case MEMCACHED_HASH_MURMUR: return "MEMCACHED_HASH_MURMUR";
-  case MEMCACHED_HASH_JENKINS: return "MEMCACHED_HASH_JENKINS";
-  case MEMCACHED_HASH_CUSTOM: return "MEMCACHED_HASH_CUSTOM";
-  default:
-  case MEMCACHED_HASH_MAX: return "INVALID memcached_hash_t";
-  }
+  return libhashkit_string_hash((hashkit_hash_algorithm_t)type);
 }
index 311d5f26d2f5d6665a4bda0efc349fc53b37e56a..10ff26df5bd6daa34550a298f7d5d5d3fbb409a9 100644 (file)
@@ -212,35 +212,5 @@ uint32_t memcached_server_count(const memcached_st *);
 } // extern "C"
 #endif
 
-
-#ifdef __cplusplus
-class Memcached : private memcached_st {
-public:
-
-  Memcached()
-  {
-    memcached_create(this);
-  }
-
-  ~Memcached()
-  {
-    memcached_free(this);
-  }
-
-  Memcached(const Memcached& source)
-  {
-    memcached_clone(this, &source);
-  }
-
-  Memcached& operator=(const Memcached& source)
-  {
-    memcached_free(this);
-    memcached_clone(this, &source);
-
-    return *this;
-  }
-};
-#endif
-
 #endif /* __LIBMEMCACHED_MEMCACHED_H__ */
 
index c148d3effd10528ac8cf427ef6bc4447a02df93d..140d28fcae35a49d7574c1aa57ad810cea504848 100644 (file)
@@ -3,9 +3,9 @@
 */
 #include <libtest/test.h>
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
 
 #include <libhashkit/hashkit.h>
 
@@ -69,7 +69,7 @@ static test_return_t digest_test(void *obj)
   return TEST_SUCCESS;
 }
 
-static test_return_t set_function_test(void *obj)
+static test_return_t set_function_test(void *)
 {
   Hashkit hashk;
   hashkit_hash_algorithm_t algo_list[]= { 
@@ -84,21 +84,15 @@ static test_return_t set_function_test(void *obj)
     HASHKIT_HASH_JENKINS,
     HASHKIT_HASH_MAX
   };
-  hashkit_hash_algorithm_t *algo;
-  (void)obj;
 
 
-  for (algo= algo_list; *algo != HASHKIT_HASH_MAX; algo++)
+  for (hashkit_hash_algorithm_t *algo= algo_list; *algo != HASHKIT_HASH_MAX; algo++)
   {
-    hashkit_return_t rc;
-    uint32_t x;
-    const char **ptr;
-    uint32_t *list;
-
-    rc= hashk.set_function(*algo);
+    hashkit_return_t rc= hashk.set_function(*algo);
 
     test_true(rc == HASHKIT_SUCCESS);
 
+    uint32_t *list;
     switch (*algo)
     {
     case HASHKIT_HASH_DEFAULT:
@@ -123,9 +117,18 @@ static test_return_t set_function_test(void *obj)
       list= fnv1a_32_values;
       break;
     case HASHKIT_HASH_HSIEH:
+#ifndef HAVE_HSIEH_HASH
+      continue;
+#endif
       list= hsieh_values;
       break;
     case HASHKIT_HASH_MURMUR:
+#ifdef WORDS_BIGENDIAN
+      continue;
+#endif
+#ifndef HAVE_MURMUR_HASH
+      continue;
+#endif
       list= murmur_values;
       break;
     case HASHKIT_HASH_JENKINS:
@@ -139,12 +142,16 @@ static test_return_t set_function_test(void *obj)
     }
 
     // Now we make sure we did set the hash correctly.
+    uint32_t x;
+    const char **ptr;
     for (ptr= list_to_hash, x= 0; *ptr; ptr++, x++)
     {
       uint32_t hash_val;
 
       hash_val= hashk.digest(*ptr, strlen(*ptr));
-      test_true(list[x] == hash_val);
+      char buffer[1024];
+      snprintf(buffer, sizeof(buffer), "%lu %lus %s", (unsigned long)list[x], (unsigned long)hash_val, libhashkit_string_hash(*algo));
+      test_true_got(list[x] == hash_val, buffer);
     }
   }
 
@@ -158,7 +165,7 @@ static test_return_t set_distribution_function_test(void *obj)
   (void)obj;
 
   rc= hashk.set_distribution_function(HASHKIT_HASH_CUSTOM);
-  test_true(rc == HASHKIT_FAILURE);
+  test_true_got(rc == HASHKIT_FAILURE or rc == HASHKIT_INVALID_ARGUMENT, hashkit_strerror(NULL, rc));
 
   rc= hashk.set_distribution_function(HASHKIT_HASH_JENKINS);
   test_true(rc == HASHKIT_SUCCESS);
index 490ed023d527adcb1a6c28a7a47eb9ad8cfd2a95..7451efd3f6a84e6d90741d4da62d1e680fb37186 100644 (file)
@@ -43,8 +43,7 @@ noinst_HEADERS+= \
 
 noinst_PROGRAMS+= \
                  tests/atomsmasher \
-                 tests/hashplus \
-                 tests/memplus \
+                 tests/hash_plus \
                  tests/startservers \
                  tests/testapp \
                  tests/testhashkit \
@@ -100,15 +99,11 @@ tests_testhashkit_SOURCES = tests/hashkit_functions.c
 tests_testhashkit_DEPENDENCIES = libtest/libtest.la libhashkit/libhashkit.la
 tests_testhashkit_LDADD = $(tests_testhashkit_DEPENDENCIES) $(LIBSASL)
 
-tests_hashplus_SOURCES = tests/hash_plus.cc
-tests_hashplus_CXXFLAGS = $(AM_CXXFLAGS) $(NO_EFF_CXX)
-tests_hashplus_DEPENDENCIES = $(tests_testhashkit_DEPENDENCIES)
-tests_hashplus_LDADD = $(tests_testhashkit_DEPENDENCIES) $(LIBSASL)
-
-tests_memplus_SOURCES = tests/mem_plus.cc
-tests_memplus_CXXFLAGS = $(AM_CXXFLAGS) $(NO_EFF_CXX)
-tests_memplus_DEPENDENCIES = $(TESTS_LDADDS)
-tests_memplus_LDADD = $(tests_memplus_DEPENDENCIES) $(LIBSASL)
+tests_hash_plus_SOURCES = tests/hash_plus.cc
+tests_hash_plus_CXXFLAGS = $(AM_CXXFLAGS) $(NO_EFF_CXX)
+tests_hash_plus_DEPENDENCIES = $(tests_testhashkit_DEPENDENCIES)
+tests_hash_plus_LDADD = $(tests_testhashkit_DEPENDENCIES) $(LIBSASL)
+check_PROGRAMS+= tests/hash_plus
 
 test: check
 
@@ -238,8 +233,6 @@ MEM_COMMAND= tests/testapp $(COLLECTION) $(SUITE)
 
 TESTPLUS_COMMAND= tests/testplus $(COLLECTION) $(SUITE)
 
-MEMPLUS_COMMAND= tests/memplus $(COLLECTION) $(SUITE)
-
 HASHPLUS_COMMAND= tests/hashplus $(COLLECTION) $(SUITE)
 
 ATOM_COMMAND= tests/atomsmasher $(COLLECTION) $(SUITE)
@@ -266,9 +259,6 @@ test-hash: tests/testhashkit
 test-hashplus: tests/hashplus
        $(HASHPLUS_COMMAND)
 
-test-memplus: tests/memplus
-       $(MEMPLUS_COMMAND)
-
 pahole-mem: tests/testapp
        $(PAHOLE_COMMAND)  $(MEM_COMMAND)
 
@@ -290,9 +280,6 @@ gdb-hash: tests/testhashkit
 gdb-hashplus: tests/hashplus
        $(DEBUG_COMMAND) $(HASHPLUS_COMMAND)
 
-gdb-memplus: tests/memplus
-       $(DEBUG_COMMAND) $(MEMPLUS_COMMAND)
-
 gdb-memslap: clients/memslap
        $(DEBUG_COMMAND)  $(MEMSLAP_COMMAND)
 
@@ -314,9 +301,6 @@ valgrind-hash: tests/testhashkit
 valgrind-hashplus: tests/hashplus
        $(VALGRIND_COMMAND) $(HASHPLUS_COMMAND)
 
-valgrind-memplus: tests/memplus
-       $(VALGRIND_COMMAND) $(MEMPLUS_COMMAND)
-
 valgrind-memslap: clients/memslap
        $(VALGRIND_COMMAND) $(MEMSLAP_COMMAND)
 
diff --git a/tests/mem_plus.cc b/tests/mem_plus.cc
deleted file mode 100644 (file)
index d9a76af..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-  C++ to libmemcit
-*/
-#include <libtest/test.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <libmemcached/memcached.h>
-
-static test_return_t exists_test(void *obj)
-{
-  Memcached memc;
-  (void)obj;
-  (void)memc;
-
-  return TEST_SUCCESS;
-}
-
-static test_return_t new_test(void *obj)
-{
-  Memcached *memc= new Memcached;
-  (void)obj;
-
-  (void)memc;
-
-  delete memc;
-
-  return TEST_SUCCESS;
-}
-
-static test_return_t copy_test(void *obj)
-{
-  Memcached *memc= new Memcached;
-  Memcached *copy(memc);
-  (void)obj;
-
-  (void)copy;
-
-  delete memc;
-
-  return TEST_SUCCESS;
-}
-
-static test_return_t assign_test(void *obj)
-{
-  Memcached memc;
-  Memcached copy;
-  (void)obj;
-
-  copy= memc;
-
-  (void)copy;
-
-  return TEST_SUCCESS;
-}
-
-test_st basic[] ={
-  { "exists", 0, reinterpret_cast<test_callback_fn>(exists_test) },
-  { "new", 0, reinterpret_cast<test_callback_fn>(new_test) },
-  { "copy", 0, reinterpret_cast<test_callback_fn>(copy_test) },
-  { "assign", 0, reinterpret_cast<test_callback_fn>(assign_test) },
-  { 0, 0, 0}
-};
-
-collection_st collection[] ={
-  {"basic", 0, 0, basic},
-  {0, 0, 0, 0}
-};
-
-void get_world(world_st *world)
-{
-  world->collections= collection;
-}