X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=test%2Flib%2FReturnMatcher.hpp;fp=test%2Flib%2FReturnMatcher.hpp;h=a0b84fb74a8095753e3a0a863b8302504588d9ee;hb=5a6a6ab8eb7b4ad34b335e812fae6dbccc489f48;hp=f95eb2f3ecae9c03324cea0c08e8fa5c86cf11c1;hpb=bcc1a6ecf1eadcf69dd9efa02fee69ee63949ca0;p=awesomized%2Flibmemcached diff --git a/test/lib/ReturnMatcher.hpp b/test/lib/ReturnMatcher.hpp index f95eb2f3..a0b84fb7 100644 --- a/test/lib/ReturnMatcher.hpp +++ b/test/lib/ReturnMatcher.hpp @@ -22,9 +22,20 @@ public: explicit ReturnMatcher(memcached_st *memc_, memcached_return_t expected_ = MEMCACHED_SUCCESS) : memc{memc_} - , expected{expected_} {} + , expected{expected_} + , actual{new actual_st} {} - ReturnMatcher(const ReturnMatcher &) = default; + ~ReturnMatcher() override { + if (actual) { + delete actual; + } + actual = nullptr; + } + ReturnMatcher(const ReturnMatcher &other) { + expected = other.expected; + memc = other.memc; + actual = new actual_st(other.actual->v); + } bool match(const memcached_return_t &arg) const override; ReturnMatcher success(); @@ -37,6 +48,13 @@ protected: private: memcached_st *memc; memcached_return_t expected{MEMCACHED_SUCCESS}; + + struct actual_st { + memcached_return_t v; + explicit actual_st(memcached_return_t _v = MEMCACHED_SUCCESS) + : v{_v} {} + }; + actual_st *actual; }; class LoneReturnMatcher {