}
// Check and make sure the prefix_key is what we expect it to be
-static test_return_t __check_prefix_key(memcached_st *memc, const scanner_string_st &hostname)
+static test_return_t __check_namespace(memcached_st *memc, const scanner_string_st &arg)
{
- memcached_server_instance_st instance=
- memcached_server_instance_by_position(memc, 0);
-
- test_true(instance);
-
- const char *first_hostname = memcached_server_name(instance);
- test_true(first_hostname);
- test_strcmp(first_hostname, hostname.c_str);
+ const char *_namespace = memcached_get_namespace(memc);
+ test_true(_namespace);
+ test_strcmp(_namespace, arg.c_str);
return TEST_SUCCESS;
}
{ NIL, scanner_string_null, scanner_string_null, NULL}
};
-scanner_variable_t prefix_key_strings[]= {
- { ARRAY, make_scanner_string("--NAMESPACE=foo"), make_scanner_string("foo"), __check_prefix_key },
- { ARRAY, make_scanner_string("--NAMESPACE=\"foo\""), make_scanner_string("foo"), __check_prefix_key },
- { ARRAY, make_scanner_string("--NAMESPACE=\"This_is_a_very_long_key\""), make_scanner_string("This_is_a_very_long_key"), __check_prefix_key },
+scanner_variable_t namespace_strings[]= {
+ { ARRAY, make_scanner_string("--NAMESPACE=foo"), make_scanner_string("foo"), __check_namespace },
+ { ARRAY, make_scanner_string("--NAMESPACE=\"foo\""), make_scanner_string("foo"), __check_namespace },
+ { ARRAY, make_scanner_string("--NAMESPACE=\"This_is_a_very_long_key\""), make_scanner_string("This_is_a_very_long_key"), __check_namespace },
{ NIL, scanner_string_null, scanner_string_null, NULL}
};
return _test_option(distribution_strings);
}
+test_return_t test_namespace_keyword(memcached_st*)
+{
+ return _test_option(namespace_strings);
+}
+
#define SUPPORT_EXAMPLE_CNF "support/example.cnf"
test_return_t memcached_create_with_options_with_filename(memcached_st*)
for (scanner_variable_t *ptr= test_boolean_options; ptr->type != NIL; ptr++)
option_list.push_back(&ptr->option);
- for (scanner_variable_t *ptr= prefix_key_strings; ptr->type != NIL; ptr++)
+ for (scanner_variable_t *ptr= namespace_strings; ptr->type != NIL; ptr++)
option_list.push_back(&ptr->option);
for (scanner_variable_t *ptr= distribution_strings; ptr->type != NIL; ptr++)
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<char *>(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<char *>(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;
}