summaryrefslogtreecommitdiff
path: root/cpp/test/buffer.cc
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@users.sourceforge.jp>2010-04-25 18:08:14 +0900
committerfrsyuki <frsyuki@users.sourceforge.jp>2010-04-25 18:08:14 +0900
commit9fbca83ac0ba0017d22cd84b696cff3baa1cde23 (patch)
tree154feafc1ade3636b1394348ff9df82f1281f280 /cpp/test/buffer.cc
parentd19bfaa2cb16eaabee79922f7d8b59ef9bccb592 (diff)
downloadmsgpack-python-9fbca83ac0ba0017d22cd84b696cff3baa1cde23.tar.gz
cpp: add test/{zone,pack_unpack,streaming,object,convert,buffer}.cc
Diffstat (limited to 'cpp/test/buffer.cc')
-rw-r--r--cpp/test/buffer.cc50
1 files changed, 50 insertions, 0 deletions
diff --git a/cpp/test/buffer.cc b/cpp/test/buffer.cc
new file mode 100644
index 0000000..a2e9037
--- /dev/null
+++ b/cpp/test/buffer.cc
@@ -0,0 +1,50 @@
+#include <msgpack.hpp>
+#include <msgpack/zbuffer.hpp>
+#include <gtest/gtest.h>
+#include <string.h>
+
+TEST(buffer, sbuffer)
+{
+ msgpack::sbuffer sbuf;
+ sbuf.write("a", 1);
+ sbuf.write("a", 1);
+ sbuf.write("a", 1);
+
+ EXPECT_EQ(3, sbuf.size());
+ EXPECT_TRUE( memcmp(sbuf.data(), "aaa", 3) == 0 );
+}
+
+
+TEST(buffer, vrefbuffer)
+{
+ msgpack::vrefbuffer vbuf;
+ vbuf.write("a", 1);
+ vbuf.write("a", 1);
+ vbuf.write("a", 1);
+
+ const struct iovec* vec = vbuf.vector();
+ size_t veclen = vbuf.vector_size();
+
+ msgpack::sbuffer sbuf;
+ for(size_t i=0; i < veclen; ++i) {
+ sbuf.write((const char*)vec[i].iov_base, vec[i].iov_len);
+ }
+
+ EXPECT_EQ(3, sbuf.size());
+ EXPECT_TRUE( memcmp(sbuf.data(), "aaa", 3) == 0 );
+}
+
+
+TEST(buffer, zbuffer)
+{
+ msgpack::zbuffer zbuf;
+ zbuf.write("a", 1);
+ zbuf.write("a", 1);
+ zbuf.write("a", 1);
+
+ zbuf.flush();
+
+ char* data = zbuf.data();
+ size_t size = zbuf.size();
+}
+