#include "test/lib/common.hpp"
-
#include "test/lib/MemcachedCluster.hpp"
-
-static memcached_return_t server_display_function(const memcached_st *,
- const memcached_instance_st * server,
- void *context)
-{
- if (context) {
- auto bigger = reinterpret_cast<size_t *>(context);
- REQUIRE(*bigger <= memcached_server_port(server));
- *bigger = memcached_server_port(server);
- }
- return MEMCACHED_SUCCESS;
-}
+#include "test/fixtures/callbacks.hpp"
TEST_CASE("memcached_servers") {
SECTION("memcached_servers_parse") {
auto local_memc = *memc;
LoneReturnMatcher test{local_memc};
size_t bigger = 0; /* Prime the value for the test_true in server_display_function */
- memcached_server_fn callbacks[1]{server_display_function};
+ memcached_server_fn callbacks[1]{server_sort_callback};
REQUIRE_SUCCESS(memcached_behavior_set(local_memc, MEMCACHED_BEHAVIOR_SORT_HOSTS, 1));
-
+
SECTION("variation 1") {
for (uint32_t x = 0; x < 7; x++) {
REQUIRE_SUCCESS(memcached_server_add_with_weight(local_memc, "localhost", random_port(), 0));
}
}
+ SECTION("add null/empty") {
+ MemcachedPtr memc;
+
+ REQUIRE(MEMCACHED_SUCCESS == memcached_server_add(*memc, nullptr, 0));
+ REQUIRE(1 == memcached_server_count(*memc));
+
+ REQUIRE(MEMCACHED_SUCCESS == memcached_server_add(*memc, "", 0));
+ REQUIRE(2 == memcached_server_count(*memc));
+ }
+
+ SECTION("add many") {
+ MemcachedPtr memc;
+
+ for (auto i = 0; i < 100; ++i) {
+ REQUIRE(MEMCACHED_SUCCESS == memcached_server_add(*memc, "memc", 11211 + i));
+ }
+ REQUIRE(100 == memcached_server_count(*memc));
+ }
+
+ SECTION("add many weighted") {
+ MemcachedPtr memc;
+
+ for (auto i = 0; i < 100; ++i) {
+ REQUIRE(MEMCACHED_SUCCESS == memcached_server_add_with_weight(*memc, "memc", 11211 +i, i % 10));
+ }
+ REQUIRE(100 == memcached_server_count(*memc));
+ }
+
+ SECTION("reset") {
+ MemcachedPtr memc;
+
+ REQUIRE_FALSE(memcached_server_count(*memc));
+ REQUIRE(MEMCACHED_SUCCESS == memcached_server_add(*memc, "local", 12345));
+ REQUIRE(1 == memcached_server_count(*memc));
+ memcached_servers_reset(*memc);
+ REQUIRE_FALSE(memcached_server_count(*memc));
+ REQUIRE(MEMCACHED_SUCCESS == memcached_server_add(*memc, "local", 12345));
+ REQUIRE(1 == memcached_server_count(*memc));
+ memcached_servers_reset(*memc);
+ REQUIRE_FALSE(memcached_server_count(*memc));
+ }
}