X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fmem_functions.c;h=95c33cbcf75f7437e1d360c2e6c339d026d65fe8;hb=b048aacba5d279f3271163cfaa0704684beca1e2;hp=e675975c2ec235e33a0f72411b74ff20b93add26;hpb=4b9854707a82ad7d6094e9d381f15e887196fe57;p=awesomized%2Flibmemcached diff --git a/tests/mem_functions.c b/tests/mem_functions.c index e675975c..95c33cbc 100644 --- a/tests/mem_functions.c +++ b/tests/mem_functions.c @@ -40,6 +40,7 @@ #include "tests/basic.h" #include "tests/error_conditions.h" #include "tests/print.h" +#include "tests/virtual_buckets.h" #ifdef HAVE_LIBMEMCACHEDUTIL @@ -209,6 +210,7 @@ static test_return_t memcached_server_remove_test(memcached_st *ptr) memc= memcached_create(&local_memc); servers= memcached_servers_parse(server_string); + assert(servers); rc= memcached_server_push(memc, servers); memcached_server_list_free(servers); @@ -229,7 +231,12 @@ static memcached_return_t server_display_unsort_function(const memcached_st *ptr uint32_t x= *((uint32_t *)(context)); (void)ptr; - assert(test_ports[x] == server->port); + if (! (test_ports[x] == server->port)) + { + fprintf(stderr, "%lu -> %lu\n", (unsigned long)test_ports[x], (unsigned long)server->port); + return MEMCACHED_FAILURE; + } + *((uint32_t *)(context))= ++x; return MEMCACHED_SUCCESS; @@ -312,13 +319,11 @@ static test_return_t clone_test(memcached_st *memc) { // Test all of the flags test_true(memc_clone->flags.no_block == memc->flags.no_block); test_true(memc_clone->flags.tcp_nodelay == memc->flags.tcp_nodelay); - test_true(memc_clone->flags.reuse_memory == memc->flags.reuse_memory); - test_true(memc_clone->flags.use_cache_lookups == memc->flags.use_cache_lookups); test_true(memc_clone->flags.support_cas == memc->flags.support_cas); test_true(memc_clone->flags.buffer_requests == memc->flags.buffer_requests); test_true(memc_clone->flags.use_sort_hosts == memc->flags.use_sort_hosts); test_true(memc_clone->flags.verify_key == memc->flags.verify_key); - test_true(memc_clone->flags.ketama_weighted == memc->flags.ketama_weighted); + test_true(memc_clone->ketama.weighted == memc->ketama.weighted); test_true(memc_clone->flags.binary_protocol == memc->flags.binary_protocol); test_true(memc_clone->flags.hash_with_prefix_key == memc->flags.hash_with_prefix_key); test_true(memc_clone->flags.no_reply == memc->flags.no_reply); @@ -403,7 +408,7 @@ static test_return_t error_test(memcached_st *memc) 54481931U, 4186304426U, 1741088401U, 2979625118U, 4159057246U, 3425930182U, 2593724503U, 1868899624U, 1769812374U, 2302537950U, 1110330676U, 3365377466U, - 1336171666U, 3365377466U }; + 1336171666U, 3021258493U, 3365377466U }; // You have updated the memcache_error messages but not updated docs/tests. for (rc= MEMCACHED_SUCCESS; rc < MEMCACHED_MAXIMUM_RETURN; rc++) @@ -419,7 +424,7 @@ static test_return_t error_test(memcached_st *memc) } test_true(values[rc] == hash_val); } - test_true(MEMCACHED_MAXIMUM_RETURN == 45); + test_true(MEMCACHED_MAXIMUM_RETURN == 46); return TEST_SUCCESS; } @@ -1998,21 +2003,15 @@ static test_return_t MEMCACHED_BEHAVIOR_CORK_test(memcached_st *memc) { memcached_return_t rc; bool set= true; - bool value; rc= memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_CORK, set); - test_true(rc == MEMCACHED_SUCCESS || rc == MEMCACHED_NOT_SUPPORTED); - - value= (bool)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_CORK); + test_true(rc == MEMCACHED_DEPRECATED); - if (rc == MEMCACHED_SUCCESS) - { - test_true((bool)value == set); - } - else - { - test_false((bool)value == set); - } + // Platform dependent +#if 0 + bool value= (bool)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_CORK); + test_false(value); +#endif return TEST_SUCCESS; } @@ -4961,6 +4960,7 @@ static test_return_t ketama_compatibility_spymemcached(memcached_st *trash) test_true(memcached_behavior_get_distribution(memc) == MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY); server_pool = memcached_servers_parse("10.0.1.1:11211 600,10.0.1.2:11211 300,10.0.1.3:11211 200,10.0.1.4:11211 350,10.0.1.5:11211 1000,10.0.1.6:11211 800,10.0.1.7:11211 950,10.0.1.8:11211 100"); + assert(server_pool); memcached_server_push(memc, server_pool); /* verify that the server list was parsed okay. */ @@ -5474,7 +5474,7 @@ static test_return_t test_cull_servers(memcached_st *memc) uint32_t count = memcached_server_count(memc); // Do not do this in your code, it is not supported. - memc->servers[1].state.is_dead= true; + memc->servers[1].options.is_dead= true; memc->state.is_time_for_rebuild= true; uint32_t new_count= memcached_server_count(memc); @@ -5749,7 +5749,7 @@ static test_return_t regression_bug_583031(memcached_st *unused) (void)memcached_get(memc, "dsf", 3, &length, &flags, &rc); - test_true_got(rc == MEMCACHED_TIMEOUT, memcached_strerror(NULL, rc)); + test_true_got(rc == MEMCACHED_TIMEOUT || rc == MEMCACHED_ERRNO || rc == MEMCACHED_FAILURE, memcached_strerror(memc, rc)); memcached_free(memc); @@ -5761,6 +5761,7 @@ static test_return_t regression_bug_728286(memcached_st *unused) { (void)unused; memcached_server_st *servers = memcached_servers_parse("1.2.3.4:99"); + assert(servers); memcached_server_free(servers); return TEST_SUCCESS; @@ -6221,7 +6222,13 @@ test_st parser_tests[] ={ {"randomly generated options", 0, (test_callback_fn)random_statement_build_test }, {"prefix_key", 0, (test_callback_fn)parser_key_prefix_test }, {"server", 0, (test_callback_fn)server_test }, - {"servers", 0, (test_callback_fn)servers_test }, + {"bad server strings", 0, (test_callback_fn)servers_bad_test }, + {"server with weights", 0, (test_callback_fn)server_with_weight_test }, + {0, 0, (test_callback_fn)0} +}; + +test_st virtual_bucket_tests[] ={ + {"basic", 0, (test_callback_fn)virtual_back_map }, {0, 0, (test_callback_fn)0} }; @@ -6289,11 +6296,10 @@ collection_st collection[] ={ {"regression_binary_vs_block", (test_callback_fn)key_setup, (test_callback_fn)key_teardown, regression_binary_vs_block}, {"error_conditions", 0, 0, error_conditions}, {"parser", 0, 0, parser_tests}, + {"virtual buckets", 0, 0, virtual_bucket_tests}, {0, 0, 0, 0} }; -#define SERVERS_TO_CREATE 5 - #include "libmemcached_world.h" void get_world(world_st *world)