1 #include "testing/lib/common.hpp"
2 #include "testing/lib/MemcachedCluster.hpp"
4 #include "libmemcached/instance.hpp"
5 #include "libmemcachedutil/common.h"
7 static memcached_return_t
ping_callback(const memcached_st
*, const memcached_instance_st
*instance
, void *) {
10 REQUIRE(libmemcached_util_ping(memcached_server_name(instance
), memcached_server_port(instance
), &rc
));
11 REQUIRE(rc
== MEMCACHED_SUCCESS
);
12 return MEMCACHED_SUCCESS
;
15 TEST_CASE("memcached util") {
16 SECTION("version_check") {
17 auto test
= MemcachedCluster::mixed();
18 auto memc
= &test
.memc
;
20 REQUIRE_SUCCESS(memcached_version(memc
));
21 REQUIRE(libmemcached_util_version_check(memc
, 0, 0, 0));
22 REQUIRE_FALSE(libmemcached_util_version_check(memc
, 255, 255, 255));
24 auto instance
= memcached_server_instance_by_position(memc
, 0);
25 REQUIRE(libmemcached_util_version_check(memc
, instance
->major_version
, instance
->minor_version
, instance
->micro_version
));
26 if (instance
->micro_version
) {
27 REQUIRE(libmemcached_util_version_check(memc
, instance
->major_version
, instance
->minor_version
, instance
->micro_version
- 1));
28 if (instance
->micro_version
< 255) {
29 REQUIRE_FALSE(libmemcached_util_version_check(memc
, instance
->major_version
, instance
->minor_version
, instance
->micro_version
+ 1));
32 if (instance
->minor_version
) {
33 REQUIRE(libmemcached_util_version_check(memc
, instance
->major_version
, instance
->minor_version
- 1, 255));
34 if (instance
->minor_version
< 255) {
35 REQUIRE_FALSE(libmemcached_util_version_check(memc
, instance
->major_version
, instance
->minor_version
+ 1, 0));
38 if (instance
->major_version
) {
39 REQUIRE(libmemcached_util_version_check(memc
, instance
->major_version
- 1, 255, 255));
40 if (instance
->major_version
< 255) {
41 REQUIRE_FALSE(libmemcached_util_version_check(memc
, instance
->major_version
+ 1, 0, 0));
47 auto test
= MemcachedCluster::network();
48 memcached_return_t rc
;
50 for (auto &server
: test
.cluster
.getServers()) {
51 REQUIRE(server
.getPid() == libmemcached_util_getpid("localhost", get
<int>(server
.getSocketOrPort()), &rc
));
55 REQUIRE(-1 == libmemcached_util_getpid("localhost", 1, &rc
));
56 REQUIRE_RC(MEMCACHED_CONNECTION_FAILURE
, rc
);
60 auto test
= MemcachedCluster::network();
61 auto memc
= &test
.memc
;
62 memcached_server_fn fptr
[] = {&ping_callback
};
64 REQUIRE_SUCCESS(memcached_server_cursor(memc
, fptr
, nullptr, 1));