Fixes condition where we were not correctly setting weighted vs not.
authorBrian Aker <brian@tangent.org>
Fri, 8 Jun 2012 11:57:03 +0000 (12:57 +0100)
committerBrian Aker <brian@tangent.org>
Fri, 8 Jun 2012 11:57:03 +0000 (12:57 +0100)
libmemcached/behavior.cc
tests/libmemcached-1.0/all_tests.h
tests/libmemcached-1.0/mem_functions.cc
tests/libmemcached-1.0/mem_functions.h

index 68e617d1410c6332b7d1bf5f9e69fd8efc072c18..fe489cf231bd7f6f1ad1b72ff290e898eac89b62 100644 (file)
@@ -489,7 +489,7 @@ memcached_return_t memcached_behavior_set_distribution(memcached_st *ptr, memcac
 {
   if (type < MEMCACHED_DISTRIBUTION_CONSISTENT_MAX)
   {
-    if (MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED)
+    if (type == MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED)
     {
       ptr->ketama.weighted= true;
     }
index 92db0b8b704bcdfae083d5d5a12c603d1eda3971..a3a8dcfc7283b6a1698c1245af9271047cc0f0e7 100644 (file)
@@ -276,6 +276,7 @@ test_st regression_tests[]= {
   {"lp:854604", true, (test_callback_fn*)regression_bug_854604 },
   {"lp:996813", true, (test_callback_fn*)regression_996813_TEST },
   {"lp:994772", true, (test_callback_fn*)regression_994772_TEST },
+  {"lp:1009493", true, (test_callback_fn*)regression_1009493_TEST },
   {0, false, (test_callback_fn*)0}
 };
 
index 83ea1317708dbb1cdf5b13e0ded0025752b10f76..ce0514d7319246f07ad7856259d0d5036aef7fe2 100644 (file)
@@ -4620,6 +4620,23 @@ test_return_t regression_bug_490520(memcached_st *original_memc)
   return TEST_SUCCESS;
 }
 
+test_return_t regression_1009493_TEST(memcached_st*)
+{
+  memcached_st* memc= memcached_create(NULL);
+  test_true(memc);
+  test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_KETAMA, true));
+
+  memcached_st* clone= memcached_clone(NULL, memc);
+  test_true(clone);
+
+  test_compare(memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED),
+               memcached_behavior_get(clone, MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED));
+
+  memcached_free(memc);
+  memcached_free(clone);
+
+  return TEST_SUCCESS;
+}
 
 test_return_t regression_994772_TEST(memcached_st* memc)
 {
index b037b86ed6494fb5d42eb7c0c61ca4c77b717832..571c1607fd20019e6e0ffc9ff80001926cd10379 100644 (file)
@@ -177,3 +177,4 @@ test_return_t wrong_failure_counter_two_test(memcached_st *memc);
 test_return_t kill_HUP_TEST(memcached_st *memc);
 test_return_t regression_996813_TEST(memcached_st*);
 test_return_t regression_994772_TEST(memcached_st*);
+test_return_t regression_1009493_TEST(memcached_st*);