X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Flibmemcached-1.0%2Freplication.cc;h=2e1808ea8acaf515a6fe420f8cd7d6bf8560684b;hb=2569efffe16042f47dc5d2c34528a9ec22fc18b0;hp=da3f82b3b131e0738139b63c40243d48d13eea80;hpb=fe4757c512265eef4f8905b3392f19d33c436ddf;p=awesomized%2Flibmemcached diff --git a/tests/libmemcached-1.0/replication.cc b/tests/libmemcached-1.0/replication.cc index da3f82b3..2e1808ea 100644 --- a/tests/libmemcached-1.0/replication.cc +++ b/tests/libmemcached-1.0/replication.cc @@ -40,8 +40,10 @@ using namespace libtest; -#include -#include +#include + +#include "libmemcached/server_instance.h" + #include #include @@ -50,7 +52,8 @@ using namespace libtest; test_return_t check_replication_sanity_TEST(memcached_st *memc) { test_true(memc); - test_true(memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL)); + test_compare(uint64_t(1), + memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL)); /* * Make sure that we store the item on all servers @@ -63,9 +66,10 @@ test_return_t check_replication_sanity_TEST(memcached_st *memc) test_return_t replication_set_test(memcached_st *memc) { - memcached_return_t rc; memcached_st *memc_clone= memcached_clone(NULL, memc); - memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, 0); + test_true(memc_clone); + test_compare(MEMCACHED_SUCCESS, + memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, 0)); test_compare(MEMCACHED_SUCCESS, memcached_set(memc, "bubba", 5, "0", 1, 0, 0)); @@ -96,6 +100,7 @@ test_return_t replication_set_test(memcached_st *memc) const char key[2]= { (char)x, 0 }; size_t len; uint32_t flags; + memcached_return_t rc; char *val= memcached_get_by_key(memc_clone, key, 1, "bubba", 5, &len, &flags, &rc); test_compare(MEMCACHED_SUCCESS, rc); @@ -108,9 +113,10 @@ test_return_t replication_set_test(memcached_st *memc) return TEST_SUCCESS; } +#include "libmemcached/instance.h" + test_return_t replication_get_test(memcached_st *memc) { - memcached_return_t rc; /* * Don't do the following in your code. I am abusing the internal details @@ -120,16 +126,16 @@ test_return_t replication_get_test(memcached_st *memc) for (uint32_t host= 0; host < memcached_server_count(memc); ++host) { memcached_st *memc_clone= memcached_clone(NULL, memc); - memcached_server_instance_st instance= - memcached_server_instance_by_position(memc_clone, host); + org::libmemcached::Instance* instance= (org::libmemcached::Instance*)memcached_server_instance_by_position(memc_clone, host); - ((memcached_server_write_instance_st)instance)->port= 0; + instance->port(0); for (int x= 'a'; x <= 'z'; ++x) { const char key[2]= { (char)x, 0 }; size_t len; uint32_t flags; + memcached_return_t rc; char *val= memcached_get_by_key(memc_clone, key, 1, "bubba", 5, &len, &flags, &rc); test_compare(MEMCACHED_SUCCESS, rc); @@ -145,17 +151,17 @@ test_return_t replication_get_test(memcached_st *memc) test_return_t replication_mget_test(memcached_st *memc) { - memcached_return_t rc; memcached_st *memc_clone= memcached_clone(NULL, memc); - memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, 0); + test_true(memc_clone); + test_compare(MEMCACHED_SUCCESS, + memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, 0)); const char *keys[]= { "bubba", "key1", "key2", "key3" }; size_t len[]= { 5, 4, 4, 4 }; for (size_t x= 0; x< 4; ++x) { - rc= memcached_set(memc, keys[x], len[x], "0", 1, 0, 0); - test_true(rc == MEMCACHED_SUCCESS); + test_compare(MEMCACHED_SUCCESS, memcached_set(memc, keys[x], len[x], "0", 1, 0, 0)); } /* @@ -182,21 +188,21 @@ test_return_t replication_mget_test(memcached_st *memc) for (uint32_t host= 0; host < memcached_server_count(memc_clone); host++) { memcached_st *new_clone= memcached_clone(NULL, memc); - memcached_server_instance_st instance= - memcached_server_instance_by_position(new_clone, host); - ((memcached_server_write_instance_st)instance)->port= 0; + memcached_server_instance_st instance= memcached_server_instance_by_position(new_clone, host); + ((memcached_server_write_instance_st)instance)->port(0); for (int x= 'a'; x <= 'z'; ++x) { char key[2]= { (char)x, 0 }; - rc= memcached_mget_by_key(new_clone, key, 1, keys, len, 4); - test_true(rc == MEMCACHED_SUCCESS); + test_compare(MEMCACHED_SUCCESS, + memcached_mget_by_key(new_clone, key, 1, keys, len, 4)); memcached_result_st *results= memcached_result_create(new_clone, &result_obj); test_true(results); int hits= 0; + memcached_return_t rc; while ((results= memcached_fetch_result(new_clone, &result_obj, &rc)) != NULL) { hits++; @@ -216,7 +222,6 @@ test_return_t replication_mget_test(memcached_st *memc) test_return_t replication_randomize_mget_test(memcached_st *memc) { memcached_result_st result_obj; - memcached_return_t rc; memcached_st *memc_clone= memcached_clone(NULL, memc); memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, 3); memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ, 1); @@ -226,8 +231,8 @@ test_return_t replication_randomize_mget_test(memcached_st *memc) for (size_t x= 0; x< 7; ++x) { - rc= memcached_set(memc, keys[x], len[x], "1", 1, 0, 0); - test_true(rc == MEMCACHED_SUCCESS); + test_compare(MEMCACHED_SUCCESS, + memcached_set(memc, keys[x], len[x], "1", 1, 0, 0)); } memcached_quit(memc); @@ -243,6 +248,7 @@ test_return_t replication_randomize_mget_test(memcached_st *memc) test_true(results); int hits= 0; + memcached_return_t rc; while ((results= memcached_fetch_result(memc_clone, &result_obj, &rc)) != NULL) { ++hits; @@ -251,6 +257,7 @@ test_return_t replication_randomize_mget_test(memcached_st *memc) memcached_result_free(&result_obj); } memcached_free(memc_clone); + return TEST_SUCCESS; } @@ -261,7 +268,7 @@ test_return_t replication_delete_test(memcached_st *memc_just_cloned) memcached_st *memc_replicated= memcached_clone(NULL, memc_just_cloned); const char *keys[]= { "bubba", "key1", "key2", "key3", "key4" }; - test_true(memcached_behavior_get(memc_replicated, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL)); + test_compare(uint64_t(1), memcached_behavior_get(memc_replicated, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL)); test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc_replicated, MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ, false)); // Make one copy @@ -288,10 +295,15 @@ test_return_t replication_delete_test(memcached_st *memc_just_cloned) /* Delete the items from all of the servers except 1, we use the non replicated memc so that we know we deleted the keys */ for (size_t x= 0; x < test_array_length(keys); ++x) { - test_compare(MEMCACHED_SUCCESS, - memcached_delete(memc_replicated, - test_string_make_from_cstr(keys[x]), // Keys - 0)); + memcached_return_t del_rc= memcached_delete(memc_replicated, + test_string_make_from_cstr(keys[x]), // Keys + 0); + if (del_rc == MEMCACHED_SUCCESS or del_rc == MEMCACHED_NOTFOUND) + { } + else + { + test_compare(MEMCACHED_SUCCESS, del_rc); + } } test_compare(TEST_SUCCESS, confirm_keys_dont_exist(memc_replicated, keys, test_array_length(keys))); @@ -325,17 +337,17 @@ test_return_t replication_randomize_mget_fail_test(memcached_st *memc) // We need to now cause a failure in one server, never do this in your own // code. close(memc_clone->servers[1].fd); - memc_clone->servers[1].port= 1; + memc_clone->servers[1].port(1); memc_clone->servers[1].address_info_next= NULL; for (int x= int(MEMCACHED_SUCCESS); x < int(MEMCACHED_MAXIMUM_RETURN); ++x) { const char *key= memcached_strerror(NULL, memcached_return_t(x)); - memcached_return_t rc; uint32_t flags; size_t value_length; + memcached_return_t rc; char *value= memcached_get(memc_clone, key, strlen(key), &value_length, &flags, &rc); - test_true(rc == MEMCACHED_SUCCESS); + test_compare(MEMCACHED_SUCCESS, rc); test_compare(strlen(key), value_length); test_strcmp(key, value); free(value);