summaryrefslogtreecommitdiff
path: root/cpp/test
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@users.sourceforge.jp>2010-08-27 17:42:05 +0900
committerfrsyuki <frsyuki@users.sourceforge.jp>2010-08-27 17:42:05 +0900
commitfe2a0f5089ebfc5c03db783a1f85b1c7c217128a (patch)
tree007dc7dcf1f0f60cb1a455c7640c7c16cad9ac60 /cpp/test
parent59ba8dec4ee082e8777047e6ae72e8b6998cdc79 (diff)
downloadmsgpack-python-fe2a0f5089ebfc5c03db783a1f85b1c7c217128a.tar.gz
cpp: adds fixed length serialization for integers
Diffstat (limited to 'cpp/test')
-rw-r--r--cpp/test/Makefile.am6
-rw-r--r--cpp/test/fixint.cc24
-rw-r--r--cpp/test/fixint_c.cc32
3 files changed, 62 insertions, 0 deletions
diff --git a/cpp/test/Makefile.am b/cpp/test/Makefile.am
index bb9439e..5225f28 100644
--- a/cpp/test/Makefile.am
+++ b/cpp/test/Makefile.am
@@ -13,6 +13,8 @@ check_PROGRAMS = \
convert \
buffer \
cases \
+ fixint \
+ fixint_c \
version \
msgpackc_test \
msgpack_test
@@ -38,6 +40,10 @@ buffer_LDADD = -lz
cases_SOURCES = cases.cc
+fixint_SOURCES = fixint.cc
+
+fixint_c_SOURCES = fixint_c.cc
+
version_SOURCES = version.cc
msgpackc_test_SOURCES = msgpackc_test.cpp
diff --git a/cpp/test/fixint.cc b/cpp/test/fixint.cc
new file mode 100644
index 0000000..64a39ac
--- /dev/null
+++ b/cpp/test/fixint.cc
@@ -0,0 +1,24 @@
+#include <msgpack.hpp>
+#include <gtest/gtest.h>
+
+template <typename T>
+void check_size(size_t size) {
+ T v(0);
+ msgpack::sbuffer sbuf;
+ msgpack::pack(sbuf, v);
+ EXPECT_EQ(size, sbuf.size());
+}
+
+TEST(fixint, size)
+{
+ check_size<msgpack::type::fix_int8>(2);
+ check_size<msgpack::type::fix_int16>(3);
+ check_size<msgpack::type::fix_int32>(5);
+ check_size<msgpack::type::fix_int64>(9);
+
+ check_size<msgpack::type::fix_uint8>(2);
+ check_size<msgpack::type::fix_uint16>(3);
+ check_size<msgpack::type::fix_uint32>(5);
+ check_size<msgpack::type::fix_uint64>(9);
+}
+
diff --git a/cpp/test/fixint_c.cc b/cpp/test/fixint_c.cc
new file mode 100644
index 0000000..caa4d26
--- /dev/null
+++ b/cpp/test/fixint_c.cc
@@ -0,0 +1,32 @@
+#include <msgpack.hpp>
+#include <gtest/gtest.h>
+
+TEST(fixint, size)
+{
+ msgpack_sbuffer* sbuf = msgpack_sbuffer_new();
+ msgpack_packer* pk = msgpack_packer_new(sbuf, msgpack_sbuffer_write);
+
+ size_t sum = 0;
+
+ EXPECT_EQ(0, msgpack_pack_fix_int8(pk, 0));
+ EXPECT_EQ(sum+=2, sbuf->size);
+ EXPECT_EQ(0, msgpack_pack_fix_int16(pk, 0));
+ EXPECT_EQ(sum+=3, sbuf->size);
+ EXPECT_EQ(0, msgpack_pack_fix_int32(pk, 0));
+ EXPECT_EQ(sum+=5, sbuf->size);
+ EXPECT_EQ(0, msgpack_pack_fix_int64(pk, 0));
+ EXPECT_EQ(sum+=9, sbuf->size);
+
+ EXPECT_EQ(0, msgpack_pack_fix_uint8(pk, 0));
+ EXPECT_EQ(sum+=2, sbuf->size);
+ EXPECT_EQ(0, msgpack_pack_fix_uint16(pk, 0));
+ EXPECT_EQ(sum+=3, sbuf->size);
+ EXPECT_EQ(0, msgpack_pack_fix_uint32(pk, 0));
+ EXPECT_EQ(sum+=5, sbuf->size);
+ EXPECT_EQ(0, msgpack_pack_fix_uint64(pk, 0));
+ EXPECT_EQ(sum+=9, sbuf->size);
+
+ msgpack_sbuffer_free(sbuf);
+ msgpack_packer_free(pk);
+}
+