Adding back libhashkit.
[m6w6/libmemcached] / tests / function.c
index 1efe9c1c81b44eb8bff204ec1a59da0419f0f1cd..3d3abd9869cef0cdbc8ea19505e6044589023c5a 100644 (file)
@@ -235,8 +235,6 @@ static test_return_t  clone_test(memcached_st *memc)
       test_truth(memc_clone->flags.no_block == memc->flags.no_block);
       test_truth(memc_clone->flags.tcp_nodelay == memc->flags.tcp_nodelay);
       test_truth(memc_clone->flags.reuse_memory == memc->flags.reuse_memory);
-      test_truth(memc_clone->flags.use_md5 == memc->flags.use_md5);
-      test_truth(memc_clone->flags.use_crc == memc->flags.use_crc);
       test_truth(memc_clone->flags.use_cache_lookups == memc->flags.use_cache_lookups);
       test_truth(memc_clone->flags.support_cas == memc->flags.support_cas);
       test_truth(memc_clone->flags.buffer_requests == memc->flags.buffer_requests);
@@ -2952,7 +2950,7 @@ static test_return_t output_ketama_weighted_keys(memcached_st *trash)
 
     uint32_t server_idx = memcached_generate_hash(memc, key, strlen(key));
     char *hostname = memc->hosts[server_idx].hostname;
-    unsigned int port = memc->hosts[server_idx].port;
+    in_port_t port = memc->hosts[server_idx].port;
     fprintf(fp, "key %s is on host /%s:%u\n", key, hostname, port);
   }
   fclose(fp);
@@ -3720,7 +3718,27 @@ static test_return_t set_memory_alloc(memcached_st *memc)
   return TEST_SUCCESS;
 }
 
-static test_return_t enable_consistent(memcached_st *memc)
+static test_return_t enable_consistent_crc(memcached_st *memc)
+{
+  test_return_t rc;
+  memcached_server_distribution_t value= MEMCACHED_DISTRIBUTION_CONSISTENT;
+  memcached_hash_t hash;
+  memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, value);
+  if ((rc= pre_crc(memc)) != TEST_SUCCESS)
+    return rc;
+
+  value= (memcached_server_distribution_t)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_DISTRIBUTION);
+  test_truth(value == MEMCACHED_DISTRIBUTION_CONSISTENT);
+
+  hash= (memcached_hash_t)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_HASH);
+
+  if (hash != MEMCACHED_HASH_CRC)
+    return TEST_SKIPPED;
+
+  return TEST_SUCCESS;
+}
+
+static test_return_t enable_consistent_hsieh(memcached_st *memc)
 {
   test_return_t rc;
   memcached_server_distribution_t value= MEMCACHED_DISTRIBUTION_CONSISTENT;
@@ -5218,8 +5236,9 @@ static test_return_t regression_bug_447342(memcached_st *memc)
    * This is to verify correct behavior in the library. Fake that two servers
    * are dead..
    */
-  unsigned int port0= memc->hosts[0].port;
-  unsigned int port2= memc->hosts[2].port;
+  in_port_t port0= memc->hosts[0].port;
+  in_port_t port2= memc->hosts[2].port;
+
   memc->hosts[0].port= 0;
   memc->hosts[2].port= 0;
 
@@ -5238,11 +5257,13 @@ static test_return_t regression_bug_447342(memcached_st *memc)
 
   /* Remove half of the objects */
   for (int x= 0; x < (int)max_keys; ++x)
+  {
     if (x & 1)
     {
       rc= memcached_delete(memc, keys[x], key_length[x], 0);
       assert(rc == MEMCACHED_SUCCESS);
     }
+  }
 
   memcached_quit(memc);
   memc->hosts[0].port= 0;
@@ -5265,6 +5286,7 @@ static test_return_t regression_bug_447342(memcached_st *memc)
   /* restore the memc handle */
   memc->hosts[0].port= port0;
   memc->hosts[2].port= port2;
+
   return TEST_SUCCESS;
 }
 
@@ -5701,7 +5723,8 @@ collection_st collection[] ={
   {"unix_socket_nodelay", (test_callback_fn)pre_nodelay, 0, tests},
   {"poll_timeout", (test_callback_fn)poll_timeout, 0, tests},
   {"gets", (test_callback_fn)enable_cas, 0, tests},
-  {"consistent", (test_callback_fn)enable_consistent, 0, tests},
+  {"consistent_crc", (test_callback_fn)enable_consistent_crc, 0, tests},
+  {"consistent_hsieh", (test_callback_fn)enable_consistent_hsieh, 0, tests},
 #ifdef MEMCACHED_ENABLE_DEPRECATED
   {"deprecated_memory_allocators", (test_callback_fn)deprecated_set_memory_alloc, 0, tests},
 #endif
@@ -5716,7 +5739,7 @@ collection_st collection[] ={
   {"generate", 0, 0, generate_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, 0, generate_tests},
+  {"generate_hsieh_consistent", (test_callback_fn)enable_consistent_hsieh, 0, generate_tests},
   {"generate_md5", (test_callback_fn)pre_md5, 0, generate_tests},
   {"generate_murmur", (test_callback_fn)pre_murmur, 0, generate_tests},
   {"generate_jenkins", (test_callback_fn)pre_jenkins, 0, generate_tests},