Add test for 1048945. The error was in the user's code. This code was corrected and...
authorBrian Aker <brian@tangent.org>
Sat, 10 Nov 2012 12:52:43 +0000 (07:52 -0500)
committerBrian Aker <brian@tangent.org>
Sat, 10 Nov 2012 12:52:43 +0000 (07:52 -0500)
libmemcached/server_list.cc
tests/libmemcached-1.0/all_tests.h
tests/libmemcached-1.0/mem_functions.cc
tests/libmemcached-1.0/mem_functions.h

index 537e9edd8dfb04e7817a22e369793b6072d8fc3d..5ead6fe929d9eb0481a845c3fcdf0c62fd5a51ba 100644 (file)
@@ -45,11 +45,11 @@ memcached_server_list_append_with_weight(memcached_server_list_st ptr,
                                          uint32_t weight,
                                          memcached_return_t *error)
 {
-  uint32_t count;
-
   memcached_return_t unused;
   if (error == NULL)
+  {
     error= &unused;
+  }
 
   if (hostname == NULL)
   {
@@ -60,14 +60,14 @@ memcached_server_list_append_with_weight(memcached_server_list_st ptr,
   {
     port = 0;
   }
-  else if (not port)
+  else if (port == 0)
   {
     port= MEMCACHED_DEFAULT_PORT;
   }
 
 
   /* Increment count for hosts */
-  count= 1;
+  uint32_t count= 1;
   if (ptr != NULL)
   {
     count+= memcached_server_list_count(ptr);
index 25fda094923cca50e01211cb4518b5d44b17b8e3..7bdfe39438d451f7a590e086dfbda128fe89fc12 100644 (file)
@@ -278,6 +278,7 @@ test_st regression_tests[]= {
   {"lp:994772", true, (test_callback_fn*)regression_994772_TEST },
   {"lp:1009493", true, (test_callback_fn*)regression_1009493_TEST },
   {"lp:1021819", true, (test_callback_fn*)regression_1021819_TEST },
+  {"lp:1048945", true, (test_callback_fn*)regression_1048945_TEST },
   {0, false, (test_callback_fn*)0}
 };
 
index 3884ac52e5fb0b10372f67f769a2951aab73c8e8..38c0db77e88a90e967128531b273ec0387f3b646 100644 (file)
@@ -1845,6 +1845,34 @@ test_return_t add_host_test(memcached_st *memc)
   return TEST_SUCCESS;
 }
 
+test_return_t regression_1048945_TEST(memcached_st*)
+{
+  memcached_return status;
+
+  memcached_server_st* list= memcached_server_list_append_with_weight(NULL, "a", 11211, 0, &status);
+  test_compare(status, MEMCACHED_SUCCESS);
+
+  list= memcached_server_list_append_with_weight(list, "b", 11211, 0, &status);
+  test_compare(status, MEMCACHED_SUCCESS);
+
+  list= memcached_server_list_append_with_weight(list, "c", 11211, 0, &status);
+  test_compare(status, MEMCACHED_SUCCESS);
+
+  memcached_st* memc= memcached_create(NULL);
+
+  status= memcached_server_push(memc, list);
+  memcached_server_list_free(list);
+  test_compare(status, MEMCACHED_SUCCESS);
+
+  memcached_server_instance_st server= memcached_server_by_key(memc, test_literal_param(__func__), &status);
+  test_true(server);
+  test_compare(status, MEMCACHED_SUCCESS);
+
+  memcached_free(memc);
+
+  return TEST_SUCCESS;
+}
+
 test_return_t memcached_fetch_result_NOT_FOUND(memcached_st *memc)
 {
   memcached_return_t rc;
index 5d433aa5b06197d9b1453f5a31bf23be505f6fc4..eb9afa29c2ae8ed8710a8636be2ca4d6a9af8062 100644 (file)
@@ -179,3 +179,4 @@ 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*);
+test_return_t regression_1048945_TEST(memcached_st*);