X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=testing%2Flib%2FMemcachedCluster.cpp;h=910aca3ce2ea3dab2a547ca5bd14d33ab7c89ab1;hb=b5ed9c3cab58f1a8e519d5551951ab8c25fc3b84;hp=9da89a960075b13b9df86397b062e4b08719506d;hpb=d1c9b695e9b3fbfcc94230a242b0290b43f27006;p=awesomized%2Flibmemcached diff --git a/testing/lib/MemcachedCluster.cpp b/testing/lib/MemcachedCluster.cpp index 9da89a96..910aca3c 100644 --- a/testing/lib/MemcachedCluster.cpp +++ b/testing/lib/MemcachedCluster.cpp @@ -34,7 +34,7 @@ void MemcachedCluster::flush() { MemcachedCluster::MemcachedCluster() : cluster{Server{ - getenv_else("MEMCACHED_BINARY", "memcached"), + MEMCACHED_BINARY, {random_socket_or_port_arg()} }} { @@ -42,25 +42,38 @@ MemcachedCluster::MemcachedCluster() } MemcachedCluster::MemcachedCluster(Cluster &&cluster_) -: cluster{forward(cluster_)} +: cluster{move(cluster_)} { init(); } +MemcachedCluster::MemcachedCluster(MemcachedCluster &&mc) + : cluster{Server{}} +{ + *this = move(mc); +} + +MemcachedCluster &MemcachedCluster::operator=(MemcachedCluster &&mc) { + cluster = move(mc.cluster); + memcached_clone(&memc, &mc.memc); + returns = ReturnMatcher{&memc}; + return *this; +} + MemcachedCluster MemcachedCluster::mixed() { return MemcachedCluster{}; } MemcachedCluster MemcachedCluster::network() { return MemcachedCluster{Cluster{Server{ - getenv_else("MEMCACHED_BINARY", "memcached"), + MEMCACHED_BINARY, {"-p", random_socket_or_port_string} }}}; } MemcachedCluster MemcachedCluster::socket() { return MemcachedCluster{Cluster{Server{ - getenv_else("MEMCACHED_BINARY", "memcached"), + MEMCACHED_BINARY, {"-s", random_socket_or_port_string} }}}; } @@ -70,42 +83,13 @@ void MemcachedCluster::enableBinaryProto(bool enable) { MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, enable)); } -MemcachedCluster::MemcachedCluster(MemcachedCluster &&mc) - : cluster{Server{}} -{ - *this = move(mc); -} - -MemcachedCluster &MemcachedCluster::operator=(MemcachedCluster &&mc) { - cluster = move(mc.cluster); - memcached_clone(&memc, &mc.memc); - returns = ReturnMatcher{&memc}; - return *this; -} - -ReturnMatcher &ReturnMatcher::operator=(ReturnMatcher &&rm) { - memc = exchange(rm.memc, nullptr); - expected = rm.expected; - return *this; -} - -bool ReturnMatcher::match(const memcached_return_t &arg) const { - return arg == expected; -} - -ReturnMatcher ReturnMatcher::success() { - return ReturnMatcher{memc}; -} - -ReturnMatcher ReturnMatcher::operator()(memcached_return_t expected_) { - return ReturnMatcher{memc, expected_}; +void MemcachedCluster::enableBuffering(bool enable) { + REQUIRE(MEMCACHED_SUCCESS == memcached_behavior_set(&memc, + MEMCACHED_BEHAVIOR_BUFFER_REQUESTS, enable)); } -string ReturnMatcher::describe() const { - return "is " + to_string(expected) - + "\n actual: " + memcached_last_error_message(memc); +void MemcachedCluster::enableReplication() { + REQUIRE(MEMCACHED_SUCCESS == memcached_behavior_set(&memc, + MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, memcached_server_count(&memc))); } -ReturnMatcher::ReturnMatcher(ReturnMatcher &&rm) { - *this = move(rm); -}