Fixed the problem that reference function doesn't pass correctly.

Fixed referenced flag writing timing on next(). It should place before flush.
Added msgpack_tuple test for CMakeLists.txt
Untabified CMakeLists.txt
Added reference function test.
This commit is contained in:
Takatoshi Kondo
2014-08-07 23:26:09 +09:00
parent 17e696fc0d
commit 0a99b9f933
5 changed files with 520 additions and 48 deletions

View File

@@ -38,6 +38,7 @@ const double kEPS = 1e-10;
msgpack::unpacked ret; \
msgpack::unpack(ret, sbuf.data(), sbuf.size()); \
EXPECT_EQ(val1, ret.get().as<test_type>()); \
EXPECT_FALSE(ret.referenced()); \
} \
} while(0)
@@ -205,6 +206,7 @@ TYPED_TEST_P(IntegerToFloatingPointTest, simple_buffer)
msgpack::unpack(ret, sbuf.data(), sbuf.size());
float_type val2 = ret.get().as<float_type>();
EXPECT_TRUE(fabs(val2 - val1) <= kEPS);
EXPECT_FALSE(ret.referenced());
}
}
@@ -242,6 +244,7 @@ TEST(MSGPACK, simple_buffer_double)
msgpack::unpacked ret;
msgpack::unpack(ret, sbuf.data(), sbuf.size());
double val2 = ret.get().as<double>();
EXPECT_FALSE(ret.referenced());
if (std::isnan(val1))
EXPECT_TRUE(std::isnan(val2));
@@ -261,6 +264,7 @@ TEST(MSGPACK, simple_buffer_true)
msgpack::unpack(ret, sbuf.data(), sbuf.size());
bool val2 = ret.get().as<bool>();
EXPECT_EQ(val1, val2);
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_false)
@@ -272,6 +276,7 @@ TEST(MSGPACK, simple_buffer_false)
msgpack::unpack(ret, sbuf.data(), sbuf.size());
bool val2 = ret.get().as<bool>();
EXPECT_EQ(val1, val2);
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext1)
@@ -287,6 +292,7 @@ TEST(MSGPACK, simple_buffer_fixext1)
EXPECT_EQ(1, ret.get().via.ext.size);
EXPECT_EQ(1, ret.get().via.ext.type());
EXPECT_EQ(2, ret.get().via.ext.data()[0]);
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext2)
@@ -303,6 +309,7 @@ TEST(MSGPACK, simple_buffer_fixext2)
EXPECT_EQ(0, ret.get().via.ext.type());
EXPECT_TRUE(
std::equal(buf, buf + sizeof(buf), ret.get().via.ext.data()));
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext4)
@@ -319,6 +326,7 @@ TEST(MSGPACK, simple_buffer_fixext4)
EXPECT_EQ(1, ret.get().via.ext.type());
EXPECT_TRUE(
std::equal(buf, buf + sizeof(buf), ret.get().via.ext.data()));
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext8)
@@ -335,6 +343,7 @@ TEST(MSGPACK, simple_buffer_fixext8)
EXPECT_EQ(1, ret.get().via.ext.type());
EXPECT_TRUE(
std::equal(buf, buf + sizeof(buf), ret.get().via.ext.data()));
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext16)
@@ -351,6 +360,7 @@ TEST(MSGPACK, simple_buffer_fixext16)
EXPECT_EQ(1, ret.get().via.ext.type());
EXPECT_TRUE(
std::equal(buf, buf + sizeof(buf), ret.get().via.ext.data()));
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext_1byte_0)
@@ -364,6 +374,7 @@ TEST(MSGPACK, simple_buffer_fixext_1byte_0)
msgpack::unpack(ret, sbuf.data(), sbuf.size());
EXPECT_EQ(size, ret.get().via.ext.size);
EXPECT_EQ(77, ret.get().via.ext.type());
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext_1byte_255)
@@ -382,6 +393,7 @@ TEST(MSGPACK, simple_buffer_fixext_1byte_255)
EXPECT_EQ(77, ret.get().via.ext.type());
EXPECT_TRUE(
std::equal(buf, buf + sizeof(buf), ret.get().via.ext.data()));
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext_2byte_256)
@@ -400,6 +412,7 @@ TEST(MSGPACK, simple_buffer_fixext_2byte_256)
EXPECT_EQ(77, ret.get().via.ext.type());
EXPECT_TRUE(
std::equal(buf, buf + sizeof(buf), ret.get().via.ext.data()));
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext_2byte_65535)
@@ -418,6 +431,7 @@ TEST(MSGPACK, simple_buffer_fixext_2byte_65535)
EXPECT_EQ(77, ret.get().via.ext.type());
EXPECT_TRUE(
std::equal(buf, buf + sizeof(buf), ret.get().via.ext.data()));
EXPECT_FALSE(ret.referenced());
}
TEST(MSGPACK, simple_buffer_fixext_4byte_65536)
@@ -436,6 +450,7 @@ TEST(MSGPACK, simple_buffer_fixext_4byte_65536)
EXPECT_EQ(77, ret.get().via.ext.type());
EXPECT_TRUE(
std::equal(buf, buf + sizeof(buf), ret.get().via.ext.data()));
EXPECT_FALSE(ret.referenced());
}
//-----------------------------------------------------------------------------
@@ -455,6 +470,7 @@ TEST(MSGPACK_STL, simple_buffer_string)
string val2 = ret.get().as<string>();
EXPECT_EQ(val1.size(), val2.size());
EXPECT_EQ(val1, val2);
EXPECT_FALSE(ret.referenced());
}
}
@@ -471,6 +487,7 @@ TEST(MSGPACK_STL, simple_buffer_vector)
vector<int> val2 = ret.get().as<vector<int> >();
EXPECT_EQ(val1.size(), val2.size());
EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin()));
EXPECT_FALSE(ret.referenced());
}
}
@@ -487,6 +504,7 @@ TEST(MSGPACK_STL, simple_buffer_map)
map<int, int> val2 = ret.get().as<map<int, int> >();
EXPECT_EQ(val1.size(), val2.size());
EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin()));
EXPECT_FALSE(ret.referenced());
}
}
@@ -503,6 +521,7 @@ TEST(MSGPACK_STL, simple_buffer_deque)
deque<int> val2 = ret.get().as<deque<int> >();
EXPECT_EQ(val1.size(), val2.size());
EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin()));
EXPECT_FALSE(ret.referenced());
}
}
@@ -519,6 +538,7 @@ TEST(MSGPACK_STL, simple_buffer_list)
list<int> val2 = ret.get().as<list<int> >();
EXPECT_EQ(val1.size(), val2.size());
EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin()));
EXPECT_FALSE(ret.referenced());
}
}
@@ -535,6 +555,7 @@ TEST(MSGPACK_STL, simple_buffer_set)
set<int> val2 = ret.get().as<set<int> >();
EXPECT_EQ(val1.size(), val2.size());
EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin()));
EXPECT_FALSE(ret.referenced());
}
}
@@ -549,6 +570,7 @@ TEST(MSGPACK_STL, simple_buffer_pair)
pair<int, int> val2 = ret.get().as<pair<int, int> >();
EXPECT_EQ(val1.first, val2.first);
EXPECT_EQ(val1.second, val2.second);
EXPECT_FALSE(ret.referenced());
}
}
@@ -578,6 +600,7 @@ TEST(MSGPACK_STL, simple_buffer_multimap)
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
EXPECT_TRUE(v1 == v2);
EXPECT_FALSE(ret.referenced());
}
}
@@ -604,6 +627,7 @@ TEST(MSGPACK_STL, simple_buffer_multiset)
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
EXPECT_TRUE(v1 == v2);
EXPECT_FALSE(ret.referenced());
}
}
@@ -629,6 +653,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_map)
EXPECT_TRUE(val2.find(it->first) != val2.end());
EXPECT_EQ(it->second, val2.find(it->first)->second);
}
EXPECT_FALSE(ret.referenced());
}
}
@@ -658,6 +683,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multimap)
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
EXPECT_TRUE(v1 == v2);
EXPECT_FALSE(ret.referenced());
}
}
#endif
@@ -680,6 +706,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_set)
tr1::unordered_set<int>::const_iterator it;
for (it = val1.begin(); it != val1.end(); ++it)
EXPECT_TRUE(val2.find(*it) != val2.end());
EXPECT_FALSE(ret.referenced());
}
}
@@ -706,6 +733,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multiset)
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
EXPECT_TRUE(v1 == v2);
EXPECT_FALSE(ret.referenced());
}
}
#endif
@@ -730,6 +758,7 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_map)
EXPECT_TRUE(val2.find(it->first) != val2.end());
EXPECT_EQ(it->second, val2.find(it->first)->second);
}
EXPECT_FALSE(ret.referenced());
}
}
@@ -759,6 +788,7 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_multimap)
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
EXPECT_TRUE(v1 == v2);
EXPECT_FALSE(ret.referenced());
}
}
#endif
@@ -781,6 +811,7 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_set)
unordered_set<int>::const_iterator it;
for (it = val1.begin(); it != val1.end(); ++it)
EXPECT_TRUE(val2.find(*it) != val2.end());
EXPECT_FALSE(ret.referenced());
}
}
@@ -807,6 +838,7 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_multiset)
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
EXPECT_TRUE(v1 == v2);
EXPECT_FALSE(ret.referenced());
}
}
#endif
@@ -823,6 +855,7 @@ TEST(MSGPACK_CPP11, simple_tuple)
msgpack::unpack(ret, sbuf.data(), sbuf.size());
std::tuple<bool, std::string, double> val2 = ret.get().as<std::tuple<bool, std::string, double> >();
EXPECT_EQ(val1, val2);
EXPECT_FALSE(ret.referenced());
}
#endif // !defined(MSGPACK_USE_CPP03)
@@ -849,6 +882,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_class)
TestClass val2 = ret.get().as<TestClass>();
EXPECT_EQ(val1.i, val2.i);
EXPECT_EQ(val1.s, val2.s);
EXPECT_FALSE(ret.referenced());
}
}
@@ -877,6 +911,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_class_old_to_new)
EXPECT_EQ(val1.i, val2.i);
EXPECT_EQ(val1.s, val2.s);
EXPECT_FALSE(val2.s.empty());
EXPECT_FALSE(ret.referenced());
}
}
@@ -927,6 +962,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_enum_member)
EXPECT_EQ(val1.t1, val2.t1);
EXPECT_EQ(val1.t2, val2.t2);
EXPECT_EQ(val1.t3, val2.t3);
EXPECT_FALSE(ret.referenced());
}
#if !defined(MSGPACK_USE_CPP03)
@@ -963,6 +999,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_enum_class_member)
EXPECT_EQ(val1.t1, val2.t1);
EXPECT_EQ(val1.t2, val2.t2);
EXPECT_EQ(val1.t3, val2.t3);
EXPECT_FALSE(ret.referenced());
}
#endif // !defined(MSGPACK_USE_CPP03)
@@ -1020,6 +1057,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_union_member)
TestUnionMemberClass val2 = ret.get().as<TestUnionMemberClass>();
EXPECT_EQ(val1.is_double, val2.is_double);
EXPECT_TRUE(fabs(val1.value.f - val2.value.f) < kEPS);
EXPECT_FALSE(ret.referenced());
}
{
// int
@@ -1032,6 +1070,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_union_member)
EXPECT_EQ(val1.is_double, val2.is_double);
EXPECT_EQ(val1.value.i, 1);
EXPECT_EQ(val1.value.i, val2.value.i);
EXPECT_FALSE(ret.referenced());
}
}
@@ -1054,6 +1093,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_union_member)
msgpack::unpack(ret, sbuf.data(), sbuf.size()); \
test_type val2 = ret.get().as<test_type>(); \
EXPECT_EQ(val1, val2); \
EXPECT_FALSE(ret.referenced()); \
} \
} while(0);