@@ -26,6 +26,7 @@ using namespace rapidjson;
26
26
TEST (StringBuffer, InitialSize) {
27
27
StringBuffer buffer;
28
28
EXPECT_EQ (0u , buffer.GetSize ());
29
+ EXPECT_EQ (0u , buffer.GetLength ());
29
30
EXPECT_STREQ (" " , buffer.GetString ());
30
31
}
31
32
@@ -34,14 +35,17 @@ TEST(StringBuffer, Put) {
34
35
buffer.Put (' A' );
35
36
36
37
EXPECT_EQ (1u , buffer.GetSize ());
38
+ EXPECT_EQ (1u , buffer.GetLength ());
37
39
EXPECT_STREQ (" A" , buffer.GetString ());
38
40
}
39
41
40
42
TEST (StringBuffer, PutN_Issue672) {
41
43
GenericStringBuffer<UTF8<>, MemoryPoolAllocator<> > buffer;
42
44
EXPECT_EQ (0 , buffer.GetSize ());
45
+ EXPECT_EQ (0 , buffer.GetLength ());
43
46
rapidjson::PutN (buffer, ' ' , 1 );
44
47
EXPECT_EQ (1 , buffer.GetSize ());
48
+ EXPECT_EQ (1 , buffer.GetLength ());
45
49
}
46
50
47
51
TEST (StringBuffer, Clear) {
@@ -52,6 +56,7 @@ TEST(StringBuffer, Clear) {
52
56
buffer.Clear ();
53
57
54
58
EXPECT_EQ (0u , buffer.GetSize ());
59
+ EXPECT_EQ (0u , buffer.GetLength ());
55
60
EXPECT_STREQ (" " , buffer.GetString ());
56
61
}
57
62
@@ -60,6 +65,7 @@ TEST(StringBuffer, Push) {
60
65
buffer.Push (5 );
61
66
62
67
EXPECT_EQ (5u , buffer.GetSize ());
68
+ EXPECT_EQ (5u , buffer.GetLength ());
63
69
64
70
// Causes sudden expansion to make the stack's capacity equal to size
65
71
buffer.Push (65536u );
@@ -76,9 +82,19 @@ TEST(StringBuffer, Pop) {
76
82
buffer.Pop (3 );
77
83
78
84
EXPECT_EQ (2u , buffer.GetSize ());
85
+ EXPECT_EQ (2u , buffer.GetLength ());
79
86
EXPECT_STREQ (" AB" , buffer.GetString ());
80
87
}
81
88
89
+ TEST (StringBuffer, GetLength_Issue744) {
90
+ GenericStringBuffer<UTF16<wchar_t > > buffer;
91
+ buffer.Put (' A' );
92
+ buffer.Put (' B' );
93
+ buffer.Put (' C' );
94
+ EXPECT_EQ (3u * sizeof (wchar_t ), buffer.GetSize ());
95
+ EXPECT_EQ (3u , buffer.GetLength ());
96
+ }
97
+
82
98
#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
83
99
84
100
#if 0 // Many old compiler does not support these. Turn it off temporaily.
@@ -130,18 +146,23 @@ TEST(StringBuffer, MoveConstructor) {
130
146
x.Put (' D' );
131
147
132
148
EXPECT_EQ (4u , x.GetSize ());
149
+ EXPECT_EQ (4u , x.GetLength ());
133
150
EXPECT_STREQ (" ABCD" , x.GetString ());
134
151
135
152
// StringBuffer y(x); // does not compile (!is_copy_constructible)
136
153
StringBuffer y (std::move (x));
137
154
EXPECT_EQ (0u , x.GetSize ());
155
+ EXPECT_EQ (0u , x.GetLength ());
138
156
EXPECT_EQ (4u , y.GetSize ());
157
+ EXPECT_EQ (4u , y.GetLength ());
139
158
EXPECT_STREQ (" ABCD" , y.GetString ());
140
159
141
160
// StringBuffer z = y; // does not compile (!is_copy_assignable)
142
161
StringBuffer z = std::move (y);
143
162
EXPECT_EQ (0u , y.GetSize ());
163
+ EXPECT_EQ (0u , y.GetLength ());
144
164
EXPECT_EQ (4u , z.GetSize ());
165
+ EXPECT_EQ (4u , z.GetLength ());
145
166
EXPECT_STREQ (" ABCD" , z.GetString ());
146
167
}
147
168
@@ -153,13 +174,14 @@ TEST(StringBuffer, MoveAssignment) {
153
174
x.Put (' D' );
154
175
155
176
EXPECT_EQ (4u , x.GetSize ());
177
+ EXPECT_EQ (4u , x.GetLength ());
156
178
EXPECT_STREQ (" ABCD" , x.GetString ());
157
179
158
180
StringBuffer y;
159
181
// y = x; // does not compile (!is_copy_assignable)
160
182
y = std::move (x);
161
183
EXPECT_EQ (0u , x.GetSize ());
162
- EXPECT_EQ (4u , y.GetSize ());
184
+ EXPECT_EQ (4u , y.GetLength ());
163
185
EXPECT_STREQ (" ABCD" , y.GetString ());
164
186
}
165
187
0 commit comments