@@ -422,3 +422,83 @@ TEST(MSGPACKC, simple_buffer_raw)
422422 msgpack_zone_destroy (&z);
423423 msgpack_sbuffer_destroy (&sbuf);
424424}
425+
426+ TEST (MSGPACKC, unpack_str8)
427+ {
428+ size_t raw_size = 7 ;
429+ const char buf[] = {
430+ 0xd9 , 7 , ' f' , ' r' , ' s' , ' y' , ' u' , ' k' , ' i'
431+ };
432+
433+ msgpack_zone z;
434+ msgpack_zone_init (&z, 2048 );
435+ msgpack_object obj;
436+ msgpack_unpack_return ret;
437+ ret = msgpack_unpack (buf, sizeof (buf), NULL , &z, &obj);
438+ EXPECT_EQ (MSGPACK_UNPACK_SUCCESS, ret);
439+ EXPECT_EQ (MSGPACK_OBJECT_RAW, obj.type );
440+ EXPECT_EQ (raw_size, obj.via .raw .size );
441+ EXPECT_EQ (0 , memcmp (" frsyuki" , obj.via .raw .ptr , raw_size));
442+
443+ msgpack_zone_destroy (&z);
444+ }
445+
446+ TEST (MSGPACKC, unpack_bin8)
447+ {
448+ size_t raw_size = 7 ;
449+ const char buf[] = {
450+ 0xc4 , 7 , ' f' , ' r' , ' s' , ' y' , ' u' , ' k' , ' i'
451+ };
452+
453+ msgpack_zone z;
454+ msgpack_zone_init (&z, 2048 );
455+ msgpack_object obj;
456+ msgpack_unpack_return ret;
457+ ret = msgpack_unpack (buf, sizeof (buf), NULL , &z, &obj);
458+ EXPECT_EQ (MSGPACK_UNPACK_SUCCESS, ret);
459+ EXPECT_EQ (MSGPACK_OBJECT_RAW, obj.type );
460+ EXPECT_EQ (raw_size, obj.via .raw .size );
461+ EXPECT_EQ (0 , memcmp (" frsyuki" , obj.via .raw .ptr , raw_size));
462+
463+ msgpack_zone_destroy (&z);
464+ }
465+
466+ TEST (MSGPACKC, unpack_bin16)
467+ {
468+ size_t raw_size = 7 ;
469+ const char buf[] = {
470+ 0xc5 , 0 , 7 , ' f' , ' r' , ' s' , ' y' , ' u' , ' k' , ' i'
471+ };
472+
473+ msgpack_zone z;
474+ msgpack_zone_init (&z, 2048 );
475+ msgpack_object obj;
476+ msgpack_unpack_return ret;
477+ ret = msgpack_unpack (buf, sizeof (buf), NULL , &z, &obj);
478+ EXPECT_EQ (MSGPACK_UNPACK_SUCCESS, ret);
479+ EXPECT_EQ (MSGPACK_OBJECT_RAW, obj.type );
480+ EXPECT_EQ (raw_size, obj.via .raw .size );
481+ EXPECT_EQ (0 , memcmp (" frsyuki" , obj.via .raw .ptr , raw_size));
482+
483+ msgpack_zone_destroy (&z);
484+ }
485+
486+ TEST (MSGPACKC, unpack_bin32)
487+ {
488+ size_t raw_size = 7 ;
489+ const char buf[] = {
490+ 0xc6 , 0 , 0 , 0 , 7 , ' f' , ' r' , ' s' , ' y' , ' u' , ' k' , ' i'
491+ };
492+
493+ msgpack_zone z;
494+ msgpack_zone_init (&z, 2048 );
495+ msgpack_object obj;
496+ msgpack_unpack_return ret;
497+ ret = msgpack_unpack (buf, sizeof (buf), NULL , &z, &obj);
498+ EXPECT_EQ (MSGPACK_UNPACK_SUCCESS, ret);
499+ EXPECT_EQ (MSGPACK_OBJECT_RAW, obj.type );
500+ EXPECT_EQ (raw_size, obj.via .raw .size );
501+ EXPECT_EQ (0 , memcmp (" frsyuki" , obj.via .raw .ptr , raw_size));
502+
503+ msgpack_zone_destroy (&z);
504+ }
0 commit comments