testing: fix osx
[awesomized/libmemcached] / test / tests / memcached / prepend.cpp
diff --git a/test/tests/memcached/prepend.cpp b/test/tests/memcached/prepend.cpp
new file mode 100644 (file)
index 0000000..533cd3b
--- /dev/null
@@ -0,0 +1,28 @@
+#include "test/lib/common.hpp"
+#include "test/lib/MemcachedCluster.hpp"
+
+TEST_CASE("memcached_prepend") {
+  pair<string, MemcachedCluster> tests[] = {
+      {"network", MemcachedCluster::network()},
+      {"socket", MemcachedCluster::socket()}
+  };
+
+  LOOPED_SECTION(tests) {
+    auto memc = &test.memc;
+
+    test.flush();
+
+    REQUIRE_RC(MEMCACHED_NOTSTORED, memcached_prepend(memc, S(__func__), S("fail"), 0, 0));
+    REQUIRE_SUCCESS(memcached_set(memc, S(__func__), S("initial"), 0, 0));
+    REQUIRE_SUCCESS(memcached_prepend(memc, S(__func__), S("pre1"), 0, 0));
+    REQUIRE_SUCCESS(memcached_prepend(memc, S(__func__), S("pre2"), 0, 0));
+
+    memcached_return_t rc;
+    uint32_t flags;
+    size_t len;
+    char *val = memcached_get(memc, S(__func__), &len, &flags, &rc);
+    Malloced v(val);
+    REQUIRE_SUCCESS(rc);
+    REQUIRE("pre2pre1initial" == string(val, len));
+  }
+}