@@ -1612,6 +1612,51 @@ TEST(MSGPACKC, object_bin_print_buffer_overflow) {
16121612 EXPECT_STREQ (" \" test\" " , buffer);
16131613}
16141614
1615+ TEST (MSGPACKC, init_msgpack_obj_string) {
1616+ msgpack_object obj;
1617+ char buffer[] = " test" ;
1618+ msgpack_object_init (&obj, MSGPACK_OBJECT_STR, (void *)buffer, strlen (buffer));
1619+ EXPECT_EQ (MSGPACK_OBJECT_STR, obj.type );
1620+ EXPECT_STREQ (buffer, obj.via .str .ptr );
1621+ }
1622+
1623+ TEST (MSGPACKC, init_msgpack_obj_bin) {
1624+ msgpack_object obj;
1625+ char buffer[] = " test" ;
1626+ msgpack_object_init (&obj, MSGPACK_OBJECT_BIN, (void *)buffer, strlen (buffer));
1627+ EXPECT_EQ (MSGPACK_OBJECT_BIN, obj.type );
1628+ EXPECT_STREQ (buffer, obj.via .bin .ptr );
1629+ }
1630+
1631+ TEST (MSGPACKC, init_msgpack_obj_array) {
1632+ msgpack_object obj;
1633+ char buffer[][7 ] = {" test_1" , " test_2" , " test_3" , " test_4" };
1634+ size_t buffer_size = 4 ;
1635+ msgpack_object array[buffer_size];
1636+ for (size_t i = 0 ; i < buffer_size; i++) {
1637+ msgpack_object_init (&array[i], MSGPACK_OBJECT_STR, (void *)buffer[i], strlen (buffer[i]));
1638+ }
1639+ msgpack_object_init (&obj, MSGPACK_OBJECT_ARRAY, (void *)array, buffer_size);
1640+ EXPECT_EQ (MSGPACK_OBJECT_ARRAY, obj.type );
1641+ for (size_t i = 0 ; i < buffer_size; i++) {
1642+ EXPECT_STREQ (buffer[i], obj.via .array .ptr [i].via .str .ptr );
1643+ }
1644+ }
1645+
1646+ TEST (MSGPACKC, init_msgpack_obj_map) {
1647+ msgpack_object obj;
1648+ char key_str[] = " test_key" ;
1649+ char value_str[] = " test_value" ;
1650+ msgpack_object key,value;
1651+ msgpack_object_init (&key, MSGPACK_OBJECT_STR, (void *)key_str, strlen (key_str));
1652+ msgpack_object_init (&value, MSGPACK_OBJECT_STR, (void *)value_str, strlen (value_str));
1653+ msgpack_object_kv map = { key, value };
1654+ msgpack_object_init (&obj, MSGPACK_OBJECT_MAP, (void *)&map, 1 );
1655+ EXPECT_EQ (MSGPACK_OBJECT_MAP, obj.type );
1656+ EXPECT_STREQ (key_str, obj.via .map .ptr ->key .via .str .ptr );
1657+ EXPECT_STREQ (value_str, obj.via .map .ptr ->val .via .str .ptr );
1658+ }
1659+
16151660/* test for vrefbuffer */
16161661#define GEN_TEST_VREFBUFFER_PREPARE (...) \
16171662 msgpack_vrefbuffer vbuf; \
0 commit comments