X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=test%2Flib%2Fcommon.hpp;h=083efe0d66f060eaa2f4dd2baa2e7de7efc6659a;hb=2f289c64f625962d945ec3bee80f36bc5c61ee35;hp=a0fdf3846208dab4607ef7d9907cd3c6f0b5246e;hpb=a1b265e9eba018e9ea510c9224953c27fc271bc9;p=awesomized%2Flibmemcached diff --git a/test/lib/common.hpp b/test/lib/common.hpp index a0fdf384..083efe0d 100644 --- a/test/lib/common.hpp +++ b/test/lib/common.hpp @@ -16,6 +16,7 @@ #pragma once #include +#include #include #include #include @@ -28,6 +29,7 @@ #include "test/conf.h" #include "test/lib/catch.hpp" +#include "test/lib/env.hpp" #include "test/lib/random.hpp" #include "libmemcached/memcached.h" @@ -38,8 +40,7 @@ using socket_or_port_t = variant; /** * Useful macros for testing */ -#define S(s) (s), strlen(s) -#define DECLARE_STREQUAL static auto strequal = equal_to(); +#define S(s) (s), strlen(s) #define LOOPED_SECTION(tests) \ for (auto &[name, test] : tests) DYNAMIC_SECTION("test " << name) #define REQUIRE_SUCCESS(rc) \ @@ -53,8 +54,6 @@ using socket_or_port_t = variant; REQUIRE_THAT(call, test.returns(rc)); \ } while (0) -const char *getenv_else(const char *var, const char *defval); - inline memcached_return_t fetch_all_results(memcached_st *memc, unsigned int &keys_returned, memcached_return_t &rc) { keys_returned = 0; @@ -92,6 +91,17 @@ public: bool put(const char *buf, size_t len) const { return static_cast(len) == write(fd, buf, len); } + string get() const { + string all; + char buf[200]; + ssize_t len; + + lseek(fd, 0, SEEK_SET); + while (0 < (len = read(fd, buf, sizeof(buf)))) { + all.append(buf, len); + } + return all; + } private: char fn[80]; @@ -102,12 +112,20 @@ class MemcachedPtr { public: memcached_st *memc; - explicit MemcachedPtr(memcached_st *memc_) { memc = memc_; } + explicit MemcachedPtr(memcached_st *memc_) { + memc = memc_; + } MemcachedPtr() : MemcachedPtr(memcached_create(nullptr)) {} - ~MemcachedPtr() { memcached_free(memc); } - memcached_st *operator*() const { return memc; } - auto operator->() const { return memc; } + ~MemcachedPtr() { + memcached_free(memc); + } + memcached_st *operator*() const { + return memc; + } + auto operator->() const { + return memc; + } }; template @@ -127,6 +145,6 @@ public: if (ptr) free(ptr); } - auto operator*() { return ptr; } - auto operator->() { return ptr; } + auto operator*() const { return ptr; } + auto operator->() const { return ptr; } };