X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=test%2Ftests%2Fmemcached%2Fservers.cpp;h=248421b203988fdf26f8629fcc3849c1469fdc34;hb=fd66e60622e8e139753f62454cfdd5be662e39a0;hp=db96a845d1669d38142df316aff036d246cec246;hpb=d71edecebf48c345537cdb6f72e3afefde0e708f;p=m6w6%2Flibmemcached diff --git a/test/tests/memcached/servers.cpp b/test/tests/memcached/servers.cpp index db96a845..248421b2 100644 --- a/test/tests/memcached/servers.cpp +++ b/test/tests/memcached/servers.cpp @@ -1,18 +1,6 @@ #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(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") { @@ -60,10 +48,10 @@ TEST_CASE("memcached_servers") { 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)); @@ -91,4 +79,45 @@ TEST_CASE("memcached_servers") { } } + 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)); + } }