In Value.CopyFrom unit test, run both allocators.
@pah
This commit is contained in:
parent
d0146c4476
commit
80a5b9093c
@ -25,37 +25,38 @@ TEST(Value, assignment_operator) {
|
|||||||
EXPECT_EQ(1234, y.GetInt());
|
EXPECT_EQ(1234, y.GetInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(Value, CopyFrom)
|
template <typename Value>
|
||||||
{
|
void TestCopyFrom() {
|
||||||
// use CrtAllocator to explicitly malloc/free any memory
|
|
||||||
// comment this line to use the default Allocator instead
|
|
||||||
typedef GenericValue<UTF8<>,CrtAllocator> Value;
|
|
||||||
|
|
||||||
Value::AllocatorType a;
|
Value::AllocatorType a;
|
||||||
Value v1(1234);
|
Value v1(1234);
|
||||||
Value v2(v1,a); // deep copy constructor
|
Value v2(v1, a); // deep copy constructor
|
||||||
EXPECT_TRUE(v1.GetType() == v2.GetType());
|
EXPECT_TRUE(v1.GetType() == v2.GetType());
|
||||||
EXPECT_EQ(v1.GetInt(), v2.GetInt());
|
EXPECT_EQ(v1.GetInt(), v2.GetInt());
|
||||||
|
|
||||||
v1.SetString("foo");
|
v1.SetString("foo");
|
||||||
v2.CopyFrom(v1,a);
|
v2.CopyFrom(v1, a);
|
||||||
EXPECT_TRUE(v1.GetType() == v2.GetType());
|
EXPECT_TRUE(v1.GetType() == v2.GetType());
|
||||||
EXPECT_STREQ(v1.GetString(), v2.GetString());
|
EXPECT_STREQ(v1.GetString(), v2.GetString());
|
||||||
EXPECT_EQ(v1.GetString(), v2.GetString()); // string NOT copied
|
EXPECT_EQ(v1.GetString(), v2.GetString()); // string NOT copied
|
||||||
|
|
||||||
v1.SetArray().PushBack(1234,a);
|
v1.SetArray().PushBack(1234, a);
|
||||||
v2.CopyFrom(v1,a);
|
v2.CopyFrom(v1, a);
|
||||||
EXPECT_TRUE(v2.IsArray());
|
EXPECT_TRUE(v2.IsArray());
|
||||||
EXPECT_EQ(v1.Size(), v2.Size());
|
EXPECT_EQ(v1.Size(), v2.Size());
|
||||||
|
|
||||||
v1.PushBack(Value().SetString("foo",a),a); // push string copy
|
v1.PushBack(Value().SetString("foo", a), a); // push string copy
|
||||||
EXPECT_TRUE(v1.Size() != v2.Size());
|
EXPECT_TRUE(v1.Size() != v2.Size());
|
||||||
v2.CopyFrom(v1,a);
|
v2.CopyFrom(v1, a);
|
||||||
EXPECT_TRUE(v1.Size() == v2.Size());
|
EXPECT_TRUE(v1.Size() == v2.Size());
|
||||||
EXPECT_STREQ(v1[1].GetString(), v2[1].GetString());
|
EXPECT_STREQ(v1[1].GetString(), v2[1].GetString());
|
||||||
EXPECT_NE(v1[1].GetString(), v2[1].GetString()); // string got copied
|
EXPECT_NE(v1[1].GetString(), v2[1].GetString()); // string got copied
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(Value, CopyFrom) {
|
||||||
|
TestCopyFrom<Value>();
|
||||||
|
TestCopyFrom<GenericValue<UTF8<>, CrtAllocator> >();
|
||||||
|
}
|
||||||
|
|
||||||
TEST(Value, Swap) {
|
TEST(Value, Swap) {
|
||||||
Value v1(1234);
|
Value v1(1234);
|
||||||
Value v2(kObjectType);
|
Value v2(kObjectType);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user