1#include <msgpack.hpp> 2#include <sstream> 3#include <iterator> 4#include <gtest/gtest.h> 5 6#ifdef HAVE_CONFIG_H 7#include "config.h" 8#endif 9 10#if defined(MSGPACK_USE_BOOST) 11#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 12 13TEST(MSGPACK_BOOST, pack_convert_string_ref) 14{ 15 std::stringstream ss; 16 std::string s = "ABC"; 17 boost::string_ref val1(s); 18 19 msgpack::pack(ss, val1); 20 21 msgpack::unpacked ret; 22 msgpack::unpack(ret, ss.str().data(), ss.str().size()); 23 boost::string_ref val2 = ret.get().as<boost::string_ref>(); 24 EXPECT_TRUE(val1 == val2); 25} 26 27TEST(MSGPACK_BOOST, object_strinf_ref) 28{ 29 std::string s = "ABC"; 30 boost::string_ref val1(s); 31 msgpack::object obj(val1); 32 boost::string_ref val2 = obj.as<boost::string_ref>(); 33 EXPECT_TRUE(val1 == val2); 34} 35 36TEST(MSGPACK_BOOST, object_with_zone_string_ref) 37{ 38 msgpack::zone z; 39 std::string s = "ABC"; 40 boost::string_ref val1(s); 41 msgpack::object obj(val1, z); 42 boost::string_ref val2 = obj.as<boost::string_ref>(); 43 EXPECT_TRUE(val1 == val2); 44} 45 46#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 47#endif // defined(MSGPACK_USE_BOOST) 48