Copy all tunable members in memcached_clone and add test case to verify
authorTrond Norbye <trond.norbye@sun.com>
Thu, 19 Mar 2009 14:56:16 +0000 (15:56 +0100)
committerTrond Norbye <trond.norbye@sun.com>
Thu, 19 Mar 2009 14:56:16 +0000 (15:56 +0100)
libmemcached/memcached.c
tests/function.c

index a15cd2f2824adf60bf00d091f8998e9973b849f9..5f8f308bf2799951a9bf3914176f233c35b70cf6 100644 (file)
@@ -81,9 +81,9 @@ memcached_st *memcached_clone(memcached_st *clone, memcached_st *source)
   {
     return NULL;
   }
-  
+
   new_clone= memcached_create(clone);
-  
+
   if (new_clone == NULL)
     return NULL;
 
@@ -108,6 +108,9 @@ memcached_st *memcached_clone(memcached_st *clone, memcached_st *source)
   new_clone->call_realloc= source->call_realloc;
   new_clone->get_key_failure= source->get_key_failure;
   new_clone->delete_trigger= source->delete_trigger;
+  new_clone->server_failure_limit= source->server_failure_limit;
+  new_clone->io_msg_watermark= source->io_msg_watermark;
+  new_clone->io_bytes_watermark= source->io_bytes_watermark;
 
   if (source->hosts)
     rc= memcached_server_push(new_clone, source->hosts);
index 91c12f7a0d76dea85a43e3abe7d5a0887945f850..40415dafb75588ddc9af970fafa3df8d8da4d642 100644 (file)
@@ -204,6 +204,30 @@ static test_return  clone_test(memcached_st *memc)
     memcached_st *clone;
     clone= memcached_clone(NULL, memc);
     assert(clone);
+
+    assert(clone->call_free == memc->call_free);
+    assert(clone->call_malloc == memc->call_malloc);
+    assert(clone->call_realloc == memc->call_realloc);
+    assert(clone->connect_timeout == memc->connect_timeout);
+    assert(clone->delete_trigger == memc->delete_trigger);
+    assert(clone->distribution == memc->distribution);
+    assert(clone->flags == memc->flags);
+    assert(clone->get_key_failure == memc->get_key_failure);
+    assert(clone->hash == memc->hash);
+    assert(clone->hash_continuum == memc->hash_continuum);
+    assert(clone->io_bytes_watermark == memc->io_bytes_watermark);
+    assert(clone->io_msg_watermark == memc->io_msg_watermark);
+    assert(clone->on_cleanup == memc->on_cleanup);
+    assert(clone->on_clone == memc->on_clone);
+    assert(clone->poll_timeout == memc->poll_timeout);
+    assert(clone->rcv_timeout == memc->rcv_timeout);
+    assert(clone->recv_size == memc->recv_size);
+    assert(clone->retry_timeout == memc->retry_timeout);
+    assert(clone->send_size == memc->send_size);
+    assert(clone->server_failure_limit == memc->server_failure_limit);
+    assert(clone->snd_timeout == memc->snd_timeout);
+    assert(clone->user_data == memc->user_data);
+
     memcached_free(clone);
   }