projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
runtests
[m6w6/libmemcached]
/
test
/
lib
/
MemcachedCluster.cpp
diff --git
a/test/lib/MemcachedCluster.cpp
b/test/lib/MemcachedCluster.cpp
index bb164e5d1982ea707e0375db807f3d7bcefa9724..a443360b52b9b3082dcfb1d102e39098098bd048 100644
(file)
--- a/
test/lib/MemcachedCluster.cpp
+++ b/
test/lib/MemcachedCluster.cpp
@@
-6,13
+6,8
@@
const memcached_st MemcachedCluster::empty_memc{};
void MemcachedCluster::init() {
REQUIRE(cluster.start());
void MemcachedCluster::init() {
REQUIRE(cluster.start());
- Retry cluster_is_listening([this]() {
- return cluster.isListening();
- });
- while (!cluster_is_listening()) {
- cluster.stop();
- cluster.wait();
- cluster.start();
+ while (!cluster.ensureListening()) {
+ cluster.restart();
}
if (auto br = getenv_else("MEMCACHED_BREAK", "0")) {
}
if (auto br = getenv_else("MEMCACHED_BREAK", "0")) {
@@
-29,6
+24,11
@@
void MemcachedCluster::init() {
}
REQUIRE(memcached_create(&memc));
}
REQUIRE(memcached_create(&memc));
+
+ for (const auto &[behavior, value] : to_set) {
+ REQUIRE(MEMCACHED_SUCCESS == memcached_behavior_set(&memc, behavior, value));
+ }
+
for (const auto &server : cluster.getServers()) {
auto target = server.getSocketOrPort();
if (holds_alternative<string>(target)) {
for (const auto &server : cluster.getServers()) {
auto target = server.getSocketOrPort();
if (holds_alternative<string>(target)) {
@@
-41,7
+41,7
@@
void MemcachedCluster::init() {
}
MemcachedCluster::~MemcachedCluster() {
}
MemcachedCluster::~MemcachedCluster() {
- if (memcmp(&memc, &empty_memc, sizeof(memc))) {
+ if (
!!
memcmp(&memc, &empty_memc, sizeof(memc))) {
memcached_free(&memc);
}
}
memcached_free(&memc);
}
}
@@
-59,22
+59,23
@@
MemcachedCluster::MemcachedCluster()
init();
}
init();
}
-MemcachedCluster::MemcachedCluster(Cluster &&cluster_)
+MemcachedCluster::MemcachedCluster(Cluster &&cluster_
, behaviors_t to_set_
)
: cluster{move(cluster_)}
: cluster{move(cluster_)}
+, to_set{move(to_set_)}
{
init();
}
{
init();
}
-MemcachedCluster::MemcachedCluster(MemcachedCluster &&mc)
+MemcachedCluster::MemcachedCluster(MemcachedCluster &&mc)
noexcept
: cluster{Server{}}
{
*this = move(mc);
}
: cluster{Server{}}
{
*this = move(mc);
}
-MemcachedCluster &MemcachedCluster::operator=(MemcachedCluster &&mc) {
+MemcachedCluster &MemcachedCluster::operator=(MemcachedCluster &&mc)
noexcept
{
cluster = move(mc.cluster);
memcached_clone(&memc, &mc.memc);
cluster = move(mc.cluster);
memcached_clone(&memc, &mc.memc);
- returns =
ReturnMatcher{&memc}
;
+ returns =
&memc
;
return *this;
}
return *this;
}
@@
-103,7
+104,9
@@
MemcachedCluster MemcachedCluster::udp() {
Server::arg_pair_t{"-U", random_socket_or_port_string},
Server::arg_t{"-v"}
}
Server::arg_pair_t{"-U", random_socket_or_port_string},
Server::arg_t{"-v"}
}
- }}};
+ }}, {
+ {MEMCACHED_BEHAVIOR_USE_UDP, 1}
+ }};
}
#if LIBMEMCACHED_WITH_SASL_SUPPORT
}
#if LIBMEMCACHED_WITH_SASL_SUPPORT
@@
-114,8
+117,9
@@
MemcachedCluster MemcachedCluster::sasl() {
Server::arg_pair_t{"-p", random_socket_or_port_string},
Server::arg_t{"-S"}
}
Server::arg_pair_t{"-p", random_socket_or_port_string},
Server::arg_t{"-S"}
}
- }}};
- mc.enableBinaryProto();
+ }}, {
+ {MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, 1},
+ }};
REQUIRE(MEMCACHED_SUCCESS == memcached_set_sasl_auth_data(&mc.memc,
"memcached", "memcached"));
return mc;
REQUIRE(MEMCACHED_SUCCESS == memcached_set_sasl_auth_data(&mc.memc,
"memcached", "memcached"));
return mc;
@@
-137,12
+141,7
@@
void MemcachedCluster::enableReplication() {
MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, memcached_server_count(&memc) - 1));
}
MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, memcached_server_count(&memc) - 1));
}
-void MemcachedCluster::enableUdp(bool enable) {
- REQUIRE(MEMCACHED_SUCCESS == memcached_behavior_set(&memc,
- MEMCACHED_BEHAVIOR_USE_UDP, enable));
-}
-
-void MemcachedCluster::killOneServer() {
+void MemcachedCluster::killOneServer() const {
const auto &servers = cluster.getServers();
const auto &victim = servers[random_num(0UL, servers.size() - 1)];
::kill(victim.getPid(), SIGKILL);
const auto &servers = cluster.getServers();
const auto &victim = servers[random_num(0UL, servers.size() - 1)];
::kill(victim.getPid(), SIGKILL);