diff options
| author | frsyuki <frsyuki@users.sourceforge.jp> | 2010-06-01 05:15:36 +0900 |
|---|---|---|
| committer | frsyuki <frsyuki@users.sourceforge.jp> | 2010-06-01 05:15:36 +0900 |
| commit | 6056f939103624d21092a5e4a4d8ffaf9204c191 (patch) | |
| tree | 9a793525a82593106303cf9f073c5f6b8c345d27 /cpp/test/cases.cc | |
| parent | 18fa2d1af4fc557a6269678e84c404c8612bf1af (diff) | |
| download | msgpack-python-6056f939103624d21092a5e4a4d8ffaf9204c191.tar.gz | |
cpp: add cases.mpac test
Diffstat (limited to 'cpp/test/cases.cc')
| -rw-r--r-- | cpp/test/cases.cc | 36 |
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()); + } +} + |
