X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=test%2Ftests%2Fmemcached%2Fudp.cpp;h=a12e42d6f5a86872c5a27e782187011f3579f802;hb=fd66e60622e8e139753f62454cfdd5be662e39a0;hp=f832e75ffa1246230da5b18da069f9e41a1cd39b;hpb=8d1c71d47768dc77183ddc36e412599cf5cf9a28;p=m6w6%2Flibmemcached diff --git a/test/tests/memcached/udp.cpp b/test/tests/memcached/udp.cpp index f832e75f..a12e42d6 100644 --- a/test/tests/memcached/udp.cpp +++ b/test/tests/memcached/udp.cpp @@ -4,6 +4,11 @@ TEST_CASE("memcached_udp") { auto test = MemcachedCluster::udp(); auto memc = &test.memc; + MemcachedPtr check; + + for (const auto &server : test.cluster.getServers()) { + memcached_server_add(*check, "localhost", get(server.getSocketOrPort())); + } SECTION("compat") { memcached_return_t rc; @@ -19,7 +24,7 @@ TEST_CASE("memcached_udp") { SECTION("io") { const auto max = 1025; // request id rolls over at 1024 - auto binary = GENERATE(0,1); + auto binary = GENERATE(0, 1); test.enableBinaryProto(binary); @@ -30,9 +35,17 @@ TEST_CASE("memcached_udp") { INFO("i=" << i); REQUIRE_SUCCESS(memcached_set(memc, s.c_str(), s.length(), s.c_str(), s.length(), 0, 0)); } - // FIXME: check request id memcached_quit(memc); REQUIRE_SUCCESS(memcached_last_error(memc)); + + for (auto i = 0; i < max; ++i) { + auto s = to_string(i); + memcached_return_t rc; + INFO("i=" << i); + Malloced val(memcached_get(*check, s.c_str(), s.length(), nullptr, nullptr, &rc)); + CHECK(*val); + CHECK(MEMCACHED_SUCCESS == rc); + } } SECTION("set too big") { @@ -70,6 +83,30 @@ TEST_CASE("memcached_udp") { memcached_quit(memc); REQUIRE_SUCCESS(memcached_last_error(memc)); } + + SECTION("incremend/decrement") { + uint64_t newval = 0; + REQUIRE_SUCCESS(memcached_set(memc, S("udp-incr"), S("1"), 0, 0)); + memcached_quit(memc); + this_thread::sleep_for(1s); + REQUIRE_SUCCESS(memcached_increment(memc, S("udp-incr"), 1, &newval)); + memcached_quit(memc); + this_thread::sleep_for(1s); + REQUIRE(newval == UINT64_MAX); + memcached_return_t rc; + Malloced val(memcached_get(*check, S("udp-incr"), nullptr, nullptr, &rc)); + REQUIRE_SUCCESS(rc); + REQUIRE(*val); + CHECK(string(*val) == "2"); + REQUIRE_SUCCESS(memcached_decrement(memc, S("udp-incr"), 1, &newval)); + memcached_quit(memc); + this_thread::sleep_for(1s); + REQUIRE(newval == UINT64_MAX); + val = memcached_get(*check, S("udp-incr"), nullptr, nullptr, &rc); + REQUIRE_SUCCESS(rc); + REQUIRE(*val); + CHECK(string(*val) == "1"); + } } } }