1 #include "test/lib/common.hpp"
2 #include "test/lib/MemcachedCluster.hpp"
4 TEST_CASE("memcached_udp") {
5 auto test
= MemcachedCluster::udp();
6 auto memc
= &test
.memc
;
10 REQUIRE_RC(MEMCACHED_INVALID_ARGUMENTS
, memcached_behavior_set(memc
, MEMCACHED_BEHAVIOR_BUFFER_REQUESTS
, true));
11 REQUIRE_RC(MEMCACHED_NOT_SUPPORTED
, memcached_version(memc
));
12 REQUIRE_SUCCESS(memcached_verbosity(memc
, 0));
13 REQUIRE(nullptr == memcached_get(memc
, S(__func__
), 0, 0, &rc
));
14 REQUIRE_RC(MEMCACHED_NOT_SUPPORTED
, rc
);
15 REQUIRE_RC(MEMCACHED_NOT_SUPPORTED
, memcached_mget_execute_by_key(memc
, S(__func__
), nullptr, nullptr, 0, nullptr, nullptr, 0));
16 REQUIRE(nullptr == memcached_stat(memc
, nullptr, &rc
));
17 REQUIRE_RC(MEMCACHED_NOT_SUPPORTED
, rc
);
21 const auto max
= 1025; // request id rolls over at 1024
22 auto binary
= GENERATE(0,1);
24 test
.enableBinaryProto(binary
);
26 DYNAMIC_SECTION("binary=" << binary
) {
28 for (auto i
= 0; i
< max
; ++i
) {
29 auto s
= to_string(i
);
31 REQUIRE_SUCCESS(memcached_set(memc
, s
.c_str(), s
.length(), s
.c_str(), s
.length(), 0, 0));
33 // FIXME: check request id
35 REQUIRE_SUCCESS(memcached_last_error(memc
));
38 SECTION("set too big") {
39 const auto len
= 1'234'567;
40 auto blob
= make_unique
<char>(len
);
41 REQUIRE_RC(MEMCACHED_WRITE_FAILURE
, memcached_set(memc
, S(__func__
), blob
.get(), len
, 0, 0));
43 REQUIRE_SUCCESS(memcached_last_error(memc
));
47 for (auto i
= 0; i
< max
; ++i
) {
48 auto s
= to_string(i
);
50 REQUIRE_SUCCESS(memcached_delete(memc
, s
.c_str(), s
.length(), 0));
53 REQUIRE_SUCCESS(memcached_last_error(memc
));
56 SECTION("verbosity") {
57 for (auto i
= 0; i
< max
; ++i
) {
59 REQUIRE_SUCCESS(memcached_verbosity(memc
, 0));
62 REQUIRE_SUCCESS(memcached_last_error(memc
));
66 for (auto i
= 0; i
< max
; ++i
) {
68 REQUIRE_SUCCESS(memcached_flush(memc
, 0));
71 REQUIRE_SUCCESS(memcached_last_error(memc
));