@@ -1612,6 +1612,111 @@ TEST(MSGPACKC, object_bin_print_buffer_overflow) {
16121612 EXPECT_STREQ (" \" test\" " , buffer);
16131613}
16141614
1615+ TEST (MSGPACKC, init_msgpack_obj_nil) {
1616+ msgpack_object obj;
1617+ msgpack_object_init_nil (&obj);
1618+ EXPECT_EQ (MSGPACK_OBJECT_NIL, obj.type );
1619+ }
1620+
1621+ TEST (MSGPACKC, init_msgpack_obj_boolean) {
1622+ msgpack_object obj;
1623+ msgpack_object_init_boolean (&obj, true );
1624+ EXPECT_EQ (MSGPACK_OBJECT_BOOLEAN, obj.type );
1625+ EXPECT_EQ (true , obj.via .boolean );
1626+ }
1627+
1628+ TEST (MSGPACKC, init_msgpack_obj_unsigned_integer) {
1629+ msgpack_object obj;
1630+ msgpack_object_init_unsigned_integer (&obj, 123 );
1631+ EXPECT_EQ (MSGPACK_OBJECT_POSITIVE_INTEGER, obj.type );
1632+ EXPECT_EQ (static_cast <uint64_t >(123 ), obj.via .u64 );
1633+ }
1634+
1635+ TEST (MSGPACKC, init_msgpack_obj_signed_integer1) {
1636+ msgpack_object obj;
1637+ msgpack_object_init_signed_integer (&obj, -123 );
1638+ EXPECT_EQ (MSGPACK_OBJECT_NEGATIVE_INTEGER, obj.type );
1639+ EXPECT_EQ (-123 , obj.via .i64 );
1640+ }
1641+
1642+ TEST (MSGPACKC, init_msgpack_obj_signed_integer2) {
1643+ msgpack_object obj;
1644+ msgpack_object_init_signed_integer (&obj, 123 );
1645+ EXPECT_EQ (MSGPACK_OBJECT_POSITIVE_INTEGER, obj.type );
1646+ EXPECT_EQ (static_cast <uint64_t >(123 ), obj.via .u64 );
1647+ }
1648+
1649+ TEST (MSGPACKC, init_msgpack_obj_float32) {
1650+ msgpack_object obj;
1651+ float val = 1 .23f ;
1652+ msgpack_object_init_float32 (&obj, val);
1653+ EXPECT_EQ (MSGPACK_OBJECT_FLOAT32, obj.type );
1654+ EXPECT_TRUE (fabs (obj.via .f64 - val) <= kEPS );
1655+ }
1656+
1657+ TEST (MSGPACKC, init_msgpack_obj_float64) {
1658+ msgpack_object obj;
1659+ double val = 1.23 ;
1660+ msgpack_object_init_float64 (&obj, val);
1661+ EXPECT_EQ (MSGPACK_OBJECT_FLOAT64, obj.type );
1662+ EXPECT_TRUE (fabs (obj.via .f64 - val) <= kEPS );
1663+ }
1664+
1665+
1666+ TEST (MSGPACKC, init_msgpack_obj_string) {
1667+ msgpack_object obj;
1668+ char buffer[] = " test" ;
1669+ msgpack_object_init_str (&obj, buffer, (uint32_t )strlen (buffer));
1670+ EXPECT_EQ (MSGPACK_OBJECT_STR, obj.type );
1671+ EXPECT_STREQ (buffer, obj.via .str .ptr );
1672+ }
1673+
1674+ TEST (MSGPACKC, init_msgpack_obj_bin) {
1675+ msgpack_object obj;
1676+ char buffer[] = " test" ;
1677+ msgpack_object_init_bin (&obj, buffer, (uint32_t )strlen (buffer));
1678+ EXPECT_EQ (MSGPACK_OBJECT_BIN, obj.type );
1679+ EXPECT_STREQ (buffer, obj.via .bin .ptr );
1680+ }
1681+
1682+ TEST (MSGPACKC, init_msgpack_obj_ext) {
1683+ msgpack_object obj;
1684+ char buffer[] = " test" ;
1685+ msgpack_object_init_ext (&obj, 1 , buffer, (uint32_t )strlen (buffer));
1686+ EXPECT_EQ (MSGPACK_OBJECT_EXT, obj.type );
1687+ EXPECT_EQ (1 , obj.via .ext .type );
1688+ EXPECT_STREQ (buffer, obj.via .ext .ptr );
1689+ }
1690+
1691+ TEST (MSGPACKC, init_msgpack_obj_array) {
1692+ msgpack_object obj;
1693+ char buffer[][7 ] = {" test_1" , " test_2" , " test_3" , " test_4" };
1694+ uint32_t buffer_size = 4 ;
1695+ msgpack_object array[buffer_size];
1696+ for (size_t i = 0 ; i < buffer_size; i++) {
1697+ msgpack_object_init_str (&array[i], buffer[i], (uint32_t )strlen (buffer[i]));
1698+ }
1699+ msgpack_object_init_array (&obj, array, buffer_size);
1700+ EXPECT_EQ (MSGPACK_OBJECT_ARRAY, obj.type );
1701+ for (size_t i = 0 ; i < buffer_size; i++) {
1702+ EXPECT_STREQ (buffer[i], obj.via .array .ptr [i].via .str .ptr );
1703+ }
1704+ }
1705+
1706+ TEST (MSGPACKC, init_msgpack_obj_map) {
1707+ msgpack_object obj;
1708+ char key_str[] = " test_key" ;
1709+ char value_str[] = " test_value" ;
1710+ msgpack_object key,value;
1711+ msgpack_object_init_str (&key, key_str, (uint32_t )strlen (key_str));
1712+ msgpack_object_init_str (&value, value_str, (uint32_t )strlen (value_str));
1713+ msgpack_object_kv map = { key, value };
1714+ msgpack_object_init_map (&obj, &map, 1 );
1715+ EXPECT_EQ (MSGPACK_OBJECT_MAP, obj.type );
1716+ EXPECT_STREQ (key_str, obj.via .map .ptr ->key .via .str .ptr );
1717+ EXPECT_STREQ (value_str, obj.via .map .ptr ->val .via .str .ptr );
1718+ }
1719+
16151720/* test for vrefbuffer */
16161721#define GEN_TEST_VREFBUFFER_PREPARE (...) \
16171722 msgpack_vrefbuffer vbuf; \
0 commit comments