X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fparser.cc;h=f1020ff45f6471f15412218bf4e9295687a16b2f;hb=12a07e58df95bb8dbe167e4157b29c910177ade8;hp=bfe458df1cd3b4737f93cff9a4be6c2bfe9cb2d8;hpb=fd55b335a4d6530382bb95542479332c87de1d30;p=awesomized%2Flibmemcached diff --git a/tests/parser.cc b/tests/parser.cc index bfe458df..f1020ff4 100644 --- a/tests/parser.cc +++ b/tests/parser.cc @@ -543,34 +543,61 @@ test_return_t test_hostname_port_weight(memcached_st *) return TEST_SUCCESS; } +struct socket_weight_t { + const char *socket; + size_t weight; +}; + static memcached_return_t dump_socket_information(const memcached_st *, const memcached_server_st *instance, void *context) { - if (not strcmp(memcached_server_name(instance), static_cast(context))) + socket_weight_t *check= (socket_weight_t *)context; + + if (strcmp(memcached_server_name(instance), check->socket)) { - std::cerr << std::endl << __FILE__ << ":" << __LINE__ << " " << memcached_server_name(instance) << " != " << static_cast(context) << std::endl; + std::cerr << std::endl << __FILE__ << ":" << __LINE__ << " " << memcached_server_name(instance) << " != " << check->socket << std::endl; return MEMCACHED_FAILURE; } - return MEMCACHED_SUCCESS; + if (instance->weight == check->weight) + { + return MEMCACHED_SUCCESS; + } + + return MEMCACHED_FAILURE; } test_return_t test_parse_socket(memcached_st *) { char buffer[BUFSIZ]; - test_compare_got(MEMCACHED_SUCCESS, - libmemcached_check_configuration(test_literal_param("--socket=\"/tmp/foo\""), buffer, sizeof(buffer)), - buffer); + memcached_server_fn callbacks[]= { dump_socket_information }; + { + test_compare_got(MEMCACHED_SUCCESS, + libmemcached_check_configuration(test_literal_param("--socket=\"/tmp/foo\""), buffer, sizeof(buffer)), + buffer); - memcached_st *memc= memcached(test_literal_param("--socket=\"/tmp/foo\"")); - test_true(memc); + memcached_st *memc= memcached(test_literal_param("--socket=\"/tmp/foo\"")); + test_true(memc); + socket_weight_t check= { "/tmp/foo", 1 }; + test_compare(MEMCACHED_SUCCESS, + memcached_server_cursor(memc, callbacks, &check, 1)); + memcached_free(memc); + } - memcached_server_fn callbacks[]= { dump_socket_information }; - test_true(memcached_success(memcached_server_cursor(memc, callbacks, (void*)("/tmp/foo"), 1))); + { + test_compare_got(MEMCACHED_SUCCESS, + libmemcached_check_configuration(test_literal_param("--socket=\"/tmp/foo\"/?23"), buffer, sizeof(buffer)), + buffer); - memcached_free(memc); + memcached_st *memc= memcached(test_literal_param("--socket=\"/tmp/foo\"/?23")); + test_true(memc); + socket_weight_t check= { "/tmp/foo", 23 }; + test_compare(MEMCACHED_SUCCESS, + memcached_server_cursor(memc, callbacks, &check, 1)); + memcached_free(memc); + } return TEST_SUCCESS; }