cpack: skip root symlinks on windows
[awesomized/libmemcached] / test / lib / ReturnMatcher.cpp
index 863945e827961549cfad4b68eca83968c269262f..926214e74a829a998e9106e18708af7860c92650 100644 (file)
@@ -1,13 +1,13 @@
 #include "ReturnMatcher.hpp"
 
-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;
+  if (arg != expected) {
+    if (expected == MEMCACHED_SUCCESS && arg == MEMCACHED_BUFFERED && memc) {
+      return memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_BUFFER_REQUESTS);
+    }
+    return false;
+  }
+  return true;
 }
 
 ReturnMatcher ReturnMatcher::success() {
@@ -18,11 +18,13 @@ ReturnMatcher ReturnMatcher::operator()(memcached_return_t expected_) {
   return ReturnMatcher{memc, expected_};
 }
 
+ReturnMatcher &ReturnMatcher::operator=(memcached_st *memc_) {
+  memc = memc_;
+  return *this;
+}
+
 string ReturnMatcher::describe() const {
   return "is " + to_string(expected)
          + "\n  actual: " + memcached_last_error_message(memc);
 }
 
-ReturnMatcher::ReturnMatcher(ReturnMatcher &&rm) {
-  *this = move(rm);
-}