1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #include <msgpack.h>
- #include <gtest/gtest.h>
- #include <stdio.h>
- TEST(pack, num)
- {
- msgpack_sbuffer* sbuf = msgpack_sbuffer_new();
- msgpack_packer* pk = msgpack_packer_new(sbuf, msgpack_sbuffer_write);
- EXPECT_EQ(0, msgpack_pack_int(pk, 1));
- msgpack_sbuffer_free(sbuf);
- msgpack_packer_free(pk);
- }
- TEST(pack, array)
- {
- msgpack_sbuffer* sbuf = msgpack_sbuffer_new();
- msgpack_packer* pk = msgpack_packer_new(sbuf, msgpack_sbuffer_write);
- EXPECT_EQ(0, msgpack_pack_array(pk, 3));
- EXPECT_EQ(0, msgpack_pack_int(pk, 1));
- EXPECT_EQ(0, msgpack_pack_int(pk, 2));
- EXPECT_EQ(0, msgpack_pack_int(pk, 3));
- msgpack_sbuffer_free(sbuf);
- msgpack_packer_free(pk);
- }
- TEST(unpack, sequence)
- {
- msgpack_sbuffer* sbuf = msgpack_sbuffer_new();
- msgpack_packer* pk = msgpack_packer_new(sbuf, msgpack_sbuffer_write);
- EXPECT_EQ(0, msgpack_pack_int(pk, 1));
- EXPECT_EQ(0, msgpack_pack_int(pk, 2));
- EXPECT_EQ(0, msgpack_pack_int(pk, 3));
- msgpack_packer_free(pk);
- msgpack_unpack_return success;
- size_t offset = 0;
- msgpack_unpacked msg;
- msgpack_unpacked_init(&msg);
- success = msgpack_unpack_next(&msg, sbuf->data, sbuf->size, &offset);
- EXPECT_EQ(MSGPACK_UNPACK_SUCCESS, success);
- EXPECT_EQ(MSGPACK_OBJECT_POSITIVE_INTEGER, msg.data.type);
- EXPECT_EQ(1u, msg.data.via.u64);
- success = msgpack_unpack_next(&msg, sbuf->data, sbuf->size, &offset);
- EXPECT_EQ(MSGPACK_UNPACK_SUCCESS, success);
- EXPECT_EQ(MSGPACK_OBJECT_POSITIVE_INTEGER, msg.data.type);
- EXPECT_EQ(2u, msg.data.via.u64);
- success = msgpack_unpack_next(&msg, sbuf->data, sbuf->size, &offset);
- EXPECT_EQ(MSGPACK_UNPACK_SUCCESS, success);
- EXPECT_EQ(MSGPACK_OBJECT_POSITIVE_INTEGER, msg.data.type);
- EXPECT_EQ(3u, msg.data.via.u64);
- success = msgpack_unpack_next(&msg, sbuf->data, sbuf->size, &offset);
- EXPECT_EQ(MSGPACK_UNPACK_CONTINUE, success);
- msgpack_sbuffer_free(sbuf);
- msgpack_unpacked_destroy(&msg);
- }
- TEST(pack, insufficient)
- {
- msgpack_sbuffer* sbuf = msgpack_sbuffer_new();
- msgpack_packer* pk = msgpack_packer_new(sbuf, msgpack_sbuffer_write);
- EXPECT_EQ(0, msgpack_pack_int(pk, 255)); // uint8 (2bytes)
- msgpack_unpack_return success;
- size_t offset = 0;
- msgpack_unpacked msg;
- msgpack_unpacked_init(&msg);
- success = msgpack_unpack_next(&msg, sbuf->data, 1, &offset);
- EXPECT_EQ(MSGPACK_UNPACK_CONTINUE, success);
- EXPECT_EQ(1u, offset);
- msgpack_unpacked_destroy(&msg);
- msgpack_sbuffer_free(sbuf);
- msgpack_packer_free(pk);
- }
|