summaryrefslogtreecommitdiff
path: root/cpp/test/cases.cc
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@users.sourceforge.jp>2010-06-01 05:15:36 +0900
committerfrsyuki <frsyuki@users.sourceforge.jp>2010-06-01 05:15:36 +0900
commit6056f939103624d21092a5e4a4d8ffaf9204c191 (patch)
tree9a793525a82593106303cf9f073c5f6b8c345d27 /cpp/test/cases.cc
parent18fa2d1af4fc557a6269678e84c404c8612bf1af (diff)
downloadmsgpack-python-6056f939103624d21092a5e4a4d8ffaf9204c191.tar.gz
cpp: add cases.mpac test
Diffstat (limited to 'cpp/test/cases.cc')
-rw-r--r--cpp/test/cases.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/cpp/test/cases.cc b/cpp/test/cases.cc
new file mode 100644
index 0000000..b408876
--- /dev/null
+++ b/cpp/test/cases.cc
@@ -0,0 +1,36 @@
+#include <msgpack.hpp>
+#include <fstream>
+#include <gtest/gtest.h>
+
+static void feed_file(msgpack::unpacker& pac, const char* path)
+{
+ std::ifstream fin(path);
+ while(true) {
+ pac.reserve_buffer(32*1024);
+ fin.read(pac.buffer(), pac.buffer_capacity());
+ if(fin.bad()) {
+ throw std::runtime_error("read failed");
+ }
+ pac.buffer_consumed(fin.gcount());
+ if(fin.fail()) {
+ break;
+ }
+ }
+}
+
+TEST(cases, format)
+{
+ msgpack::unpacker pac;
+ msgpack::unpacker pac_compact;
+
+ feed_file(pac, "cases.mpac");
+ feed_file(pac_compact, "cases_compact.mpac");
+
+ msgpack::unpacked result;
+ while(pac.next(&result)) {
+ msgpack::unpacked result_compact;
+ EXPECT_TRUE( pac_compact.next(&result_compact) );
+ EXPECT_EQ(result_compact.get(), result.get());
+ }
+}
+