@@ -361,67 +361,93 @@ TEST(object, clone_int)
361361
362362TEST (object, clone_str)
363363{
364- msgpack::zone z ;
364+ msgpack::object_handle oh ;
365365 std::string v = " 123456789" ;
366- msgpack::object obj (v, z);
367- std::size_t sz1 = msgpack::aligned_zone_size (obj);
368- msgpack::object_handle h = msgpack::clone (obj);
369- EXPECT_EQ (h.get (), obj);
370- EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
371- h = msgpack::clone (obj);
372- EXPECT_EQ (h.get (), obj);
373- EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
366+ {
367+ msgpack::zone z;
368+ msgpack::object obj (v, z);
369+ std::size_t sz1 = msgpack::aligned_zone_size (obj);
370+ msgpack::object_handle h = msgpack::clone (obj);
371+ EXPECT_EQ (h.get (), obj);
372+ EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
373+ h = msgpack::clone (obj);
374+ EXPECT_EQ (h.get (), obj);
375+ EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
376+ oh = msgpack::move (h);
377+ }
378+ EXPECT_EQ (v, oh.get ().as <std::string>());
374379}
375380
376381TEST (object, clone_bin)
377382{
378- msgpack::zone z ;
383+ msgpack::object_handle oh ;
379384 std::vector<char > v;
380- v.push_back (' A' );
381- v.push_back (' B' );
382- v.push_back (' C' );
383- msgpack::object obj (v, z);
384- std::size_t sz1 = msgpack::aligned_zone_size (obj);
385- msgpack::object_handle h = msgpack::clone (obj);
386- EXPECT_EQ (h.get (), obj);
387- EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
388- h = msgpack::clone (obj);
389- EXPECT_EQ (h.get (), obj);
390- EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
385+ {
386+ msgpack::zone z;
387+ v.push_back (' A' );
388+ v.push_back (' B' );
389+ v.push_back (' C' );
390+ msgpack::object obj (v, z);
391+ std::size_t sz1 = msgpack::aligned_zone_size (obj);
392+ msgpack::object_handle h = msgpack::clone (obj);
393+ EXPECT_EQ (h.get (), obj);
394+ EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
395+ h = msgpack::clone (obj);
396+ EXPECT_EQ (h.get (), obj);
397+ EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
398+ oh = msgpack::move (h);
399+ }
400+ std::vector<char > v2 = oh.get ().as <std::vector<char > >();
401+ EXPECT_EQ (v.size (), v2.size ());
402+ EXPECT_TRUE (equal (v.begin (), v.end (), v2.begin ()));
391403}
392404
393405TEST (object, clone_array)
394406{
395- msgpack::zone z ;
407+ msgpack::object_handle oh ;
396408 std::vector<int > v;
397- v.push_back (1 );
398- v.push_back (2 );
399- v.push_back (3 );
400- msgpack::object obj (v, z);
401- std::size_t sz1 = msgpack::aligned_zone_size (obj);
402- msgpack::object_handle h = msgpack::clone (obj);
403- EXPECT_EQ (h.get (), obj);
404- EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
405- h = msgpack::clone (obj);
406- EXPECT_EQ (h.get (), obj);
407- EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
409+ {
410+ msgpack::zone z;
411+ v.push_back (1 );
412+ v.push_back (2 );
413+ v.push_back (3 );
414+ msgpack::object obj (v, z);
415+ std::size_t sz1 = msgpack::aligned_zone_size (obj);
416+ msgpack::object_handle h = msgpack::clone (obj);
417+ EXPECT_EQ (h.get (), obj);
418+ EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
419+ h = msgpack::clone (obj);
420+ EXPECT_EQ (h.get (), obj);
421+ EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
422+ oh = msgpack::move (h);
423+ }
424+ std::vector<int > v2 = oh.get ().as <std::vector<int > >();
425+ EXPECT_EQ (v.size (), v2.size ());
426+ EXPECT_TRUE (equal (v.begin (), v.end (), v2.begin ()));
408427}
409428
410429TEST (object, clone_map)
411430{
412- msgpack::zone z ;
431+ msgpack::object_handle oh ;
413432 std::map<int , std::string> v;
414- v.insert (std::map<int , std::string>::value_type (1 , " ABC" ));
415- v.insert (std::map<int , std::string>::value_type (2 , " DEF" ));
416- v.insert (std::map<int , std::string>::value_type (3 , " GHI" ));
417- msgpack::object obj (v, z);
418- std::size_t sz1 = msgpack::aligned_zone_size (obj);
419- msgpack::object_handle h = msgpack::clone (obj);
420- EXPECT_EQ (h.get (), obj);
421- EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
422- h = msgpack::clone (obj);
423- EXPECT_EQ (h.get (), obj);
424- EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
433+ {
434+ msgpack::zone z;
435+ v.insert (std::map<int , std::string>::value_type (1 , " ABC" ));
436+ v.insert (std::map<int , std::string>::value_type (2 , " DEF" ));
437+ v.insert (std::map<int , std::string>::value_type (3 , " GHI" ));
438+ msgpack::object obj (v, z);
439+ std::size_t sz1 = msgpack::aligned_zone_size (obj);
440+ msgpack::object_handle h = msgpack::clone (obj);
441+ EXPECT_EQ (h.get (), obj);
442+ EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
443+ h = msgpack::clone (obj);
444+ EXPECT_EQ (h.get (), obj);
445+ EXPECT_EQ (sz1, msgpack::aligned_zone_size (h.get ()));
446+ oh = msgpack::move (h);
447+ }
448+ std::map<int , std::string> v2 = oh.get ().as <std::map<int , std::string> >();
449+ EXPECT_EQ (v.size (), v2.size ());
450+ EXPECT_TRUE (equal (v.begin (), v.end (), v2.begin ()));
425451}
426452
427453TEST (object, pack_float)
0 commit comments