Skip to content

Commit e985015

Browse files
committed
Tests: replace constants with sizeofString(n)
1 parent 5e0e356 commit e985015

File tree

18 files changed

+174
-148
lines changed

18 files changed

+174
-148
lines changed

extras/tests/Cpp17/string_view.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#endif
99

1010
using ArduinoJson::detail::sizeofArray;
11+
using ArduinoJson::detail::sizeofString;
1112

1213
TEST_CASE("string_view") {
1314
JsonDocument doc(256);
@@ -55,16 +56,18 @@ TEST_CASE("string_view") {
5556

5657
SECTION("String deduplication") {
5758
doc.add(std::string_view("example one", 7));
58-
REQUIRE(doc.memoryUsage() == sizeofArray(1) + 8);
59+
REQUIRE(doc.memoryUsage() == sizeofArray(1) + sizeofString(7));
5960

6061
doc.add(std::string_view("example two", 7));
61-
REQUIRE(doc.memoryUsage() == sizeofArray(2) + 8);
62+
REQUIRE(doc.memoryUsage() == sizeofArray(2) + sizeofString(7));
6263

6364
doc.add(std::string_view("example\0tree", 12));
64-
REQUIRE(doc.memoryUsage() == sizeofArray(3) + 21);
65+
REQUIRE(doc.memoryUsage() ==
66+
sizeofArray(3) + sizeofString(7) + sizeofString(12));
6567

6668
doc.add(std::string_view("example\0tree and a half", 12));
67-
REQUIRE(doc.memoryUsage() == sizeofArray(4) + 21);
69+
REQUIRE(doc.memoryUsage() ==
70+
sizeofArray(4) + sizeofString(7) + sizeofString(12));
6871
}
6972

7073
SECTION("as<std::string_view>()") {

extras/tests/JsonArray/memoryUsage.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
using ArduinoJson::detail::sizeofArray;
99
using ArduinoJson::detail::sizeofObject;
10+
using ArduinoJson::detail::sizeofString;
1011

1112
TEST_CASE("JsonArray::memoryUsage()") {
1213
JsonDocument doc(4096);
@@ -28,7 +29,7 @@ TEST_CASE("JsonArray::memoryUsage()") {
2829

2930
SECTION("includes the size of the string") {
3031
arr.add(std::string("hello"));
31-
REQUIRE(arr.memoryUsage() == sizeofArray(1) + 6);
32+
REQUIRE(arr.memoryUsage() == sizeofArray(1) + sizeofString(5));
3233
}
3334

3435
SECTION("includes the size of the nested array") {

extras/tests/JsonDeserializer/filter.cpp

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
using ArduinoJson::detail::sizeofArray;
1313
using ArduinoJson::detail::sizeofObject;
14+
using ArduinoJson::detail::sizeofString;
1415

1516
TEST_CASE("Filtering") {
1617
struct TestCase {
@@ -46,7 +47,7 @@ TEST_CASE("Filtering") {
4647
10,
4748
DeserializationError::Ok,
4849
"{\"abcdefg\":\"hijklmn\"}",
49-
sizeofObject(1) + 16
50+
sizeofObject(1) + 2*sizeofString(7)
5051
},
5152
{
5253
"{\"hello\":\"world\"}",
@@ -72,7 +73,7 @@ TEST_CASE("Filtering") {
7273
10,
7374
DeserializationError::Ok,
7475
"{\"example\":null}",
75-
sizeofObject(1) + 8
76+
sizeofObject(1) + sizeofString(7)
7677
},
7778
{
7879
// Member is a number, but filter wants an array
@@ -81,7 +82,7 @@ TEST_CASE("Filtering") {
8182
10,
8283
DeserializationError::Ok,
8384
"{\"example\":null}",
84-
sizeofObject(1) + 8
85+
sizeofObject(1) + sizeofString(7)
8586
},
8687
{
8788
// Input is an array, but filter wants an object
@@ -117,7 +118,7 @@ TEST_CASE("Filtering") {
117118
10,
118119
DeserializationError::Ok,
119120
"{\"example\":42}",
120-
sizeofObject(1) + 8
121+
sizeofObject(1) + sizeofString(7)
121122
},
122123
{
123124
// skip a float
@@ -126,7 +127,7 @@ TEST_CASE("Filtering") {
126127
10,
127128
DeserializationError::Ok,
128129
"{\"example\":42}",
129-
sizeofObject(1) + 8
130+
sizeofObject(1) + sizeofString(7)
130131
},
131132
{
132133
// skip false
@@ -135,7 +136,7 @@ TEST_CASE("Filtering") {
135136
10,
136137
DeserializationError::Ok,
137138
"{\"example\":42}",
138-
sizeofObject(1) + 8
139+
sizeofObject(1) + sizeofString(7)
139140
},
140141
{
141142
// skip true
@@ -144,7 +145,7 @@ TEST_CASE("Filtering") {
144145
10,
145146
DeserializationError::Ok,
146147
"{\"example\":42}",
147-
sizeofObject(1) + 8
148+
sizeofObject(1) + sizeofString(7)
148149
},
149150
{
150151
// skip null
@@ -153,7 +154,7 @@ TEST_CASE("Filtering") {
153154
10,
154155
DeserializationError::Ok,
155156
"{\"example\":42}",
156-
sizeofObject(1) + 8
157+
sizeofObject(1) + sizeofString(7)
157158
},
158159
{
159160
// can skip a double-quoted string
@@ -162,7 +163,7 @@ TEST_CASE("Filtering") {
162163
10,
163164
DeserializationError::Ok,
164165
"{\"example\":42}",
165-
sizeofObject(1) + 8
166+
sizeofObject(1) + sizeofString(7)
166167
},
167168
{
168169
// can skip a single-quoted string
@@ -171,7 +172,7 @@ TEST_CASE("Filtering") {
171172
10,
172173
DeserializationError::Ok,
173174
"{\"example\":42}",
174-
sizeofObject(1) + 8
175+
sizeofObject(1) + sizeofString(7)
175176
},
176177
{
177178
// can skip an empty array
@@ -180,7 +181,7 @@ TEST_CASE("Filtering") {
180181
10,
181182
DeserializationError::Ok,
182183
"{\"example\":42}",
183-
sizeofObject(1) + 8
184+
sizeofObject(1) + sizeofString(7)
184185
},
185186
{
186187
// can skip an empty array with spaces in it
@@ -189,7 +190,7 @@ TEST_CASE("Filtering") {
189190
10,
190191
DeserializationError::Ok,
191192
"{\"example\":42}",
192-
sizeofObject(1) + 8
193+
sizeofObject(1) + sizeofString(7)
193194
},
194195
{
195196
// can skip an array
@@ -198,7 +199,7 @@ TEST_CASE("Filtering") {
198199
10,
199200
DeserializationError::Ok,
200201
"{\"example\":42}",
201-
sizeofObject(1) + 8
202+
sizeofObject(1) + sizeofString(7)
202203
},
203204
{
204205
// can skip an array with spaces in it
@@ -207,7 +208,7 @@ TEST_CASE("Filtering") {
207208
10,
208209
DeserializationError::Ok,
209210
"{\"example\":42}",
210-
sizeofObject(1) + 8
211+
sizeofObject(1) + sizeofString(7)
211212
},
212213
{
213214
// can skip an empty object
@@ -216,7 +217,7 @@ TEST_CASE("Filtering") {
216217
10,
217218
DeserializationError::Ok,
218219
"{\"example\":42}",
219-
sizeofObject(1) + 8
220+
sizeofObject(1) + sizeofString(7)
220221
},
221222
{
222223
// can skip an empty object with spaces in it
@@ -225,7 +226,7 @@ TEST_CASE("Filtering") {
225226
10,
226227
DeserializationError::Ok,
227228
"{\"example\":42}",
228-
sizeofObject(1) + 8
229+
sizeofObject(1) + sizeofString(7)
229230
},
230231
{
231232
// can skip an object
@@ -234,7 +235,7 @@ TEST_CASE("Filtering") {
234235
10,
235236
DeserializationError::Ok,
236237
"{\"example\":42}",
237-
sizeofObject(1) + 8
238+
sizeofObject(1) + sizeofString(7)
238239
},
239240
{
240241
// skip an object with spaces in it
@@ -243,15 +244,15 @@ TEST_CASE("Filtering") {
243244
10,
244245
DeserializationError::Ok,
245246
"{\"example\":42}",
246-
sizeofObject(1) + 8
247+
sizeofObject(1) + sizeofString(7)
247248
},
248249
{
249250
"{\"an_integer\": 0,\"example\":{\"type\":\"int\",\"outcome\":42}}",
250251
"{\"example\":{\"outcome\":true}}",
251252
10,
252253
DeserializationError::Ok,
253254
"{\"example\":{\"outcome\":42}}",
254-
2 * sizeofObject(1) + 16
255+
2 * sizeofObject(1) + 2*sizeofString(7)
255256
},
256257
{
257258
// wildcard
@@ -260,7 +261,7 @@ TEST_CASE("Filtering") {
260261
10,
261262
DeserializationError::Ok,
262263
"{\"example\":{\"outcome\":42}}",
263-
2 * sizeofObject(1) + 16
264+
2 * sizeofObject(1) + 2*sizeofString(7)
264265
},
265266
{
266267
// exclusion filter (issue #1628)
@@ -269,7 +270,7 @@ TEST_CASE("Filtering") {
269270
10,
270271
DeserializationError::Ok,
271272
"{\"example\":1}",
272-
sizeofObject(1) + 8
273+
sizeofObject(1) + sizeofString(7)
273274
},
274275
{
275276
// only the first element of array counts
@@ -296,7 +297,7 @@ TEST_CASE("Filtering") {
296297
10,
297298
DeserializationError::Ok,
298299
"[{\"example\":1},{\"example\":3}]",
299-
sizeofArray(2) + 2 * sizeofObject(1) + 8
300+
sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7)
300301
},
301302
{
302303
"[',2,3]",

extras/tests/JsonDeserializer/string.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ TEST_CASE("Invalid JSON string") {
9797
}
9898

9999
TEST_CASE("Not enough room to save the key") {
100-
JsonDocument doc(sizeofObject(1) + 8);
100+
JsonDocument doc(sizeofObject(1) + sizeofString(7));
101101

102102
SECTION("Quoted string") {
103103
REQUIRE(deserializeJson(doc, "{\"example\":1}") ==
@@ -139,15 +139,16 @@ TEST_CASE("Deduplicate values") {
139139
JsonDocument doc(1024);
140140
deserializeJson(doc, "[\"example\",\"example\"]");
141141

142-
CHECK(doc.memoryUsage() == sizeofArray(2) + 8);
142+
CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7));
143143
CHECK(doc[0].as<const char*>() == doc[1].as<const char*>());
144144
}
145145

146146
TEST_CASE("Deduplicate keys") {
147147
JsonDocument doc(1024);
148148
deserializeJson(doc, "[{\"example\":1},{\"example\":2}]");
149149

150-
CHECK(doc.memoryUsage() == 2 * sizeofObject(1) + sizeofArray(2) + 8);
150+
CHECK(doc.memoryUsage() ==
151+
2 * sizeofObject(1) + sizeofArray(2) + sizeofString(7));
151152

152153
const char* key1 = doc[0].as<JsonObject>().begin()->key().c_str();
153154
const char* key2 = doc[1].as<JsonObject>().begin()->key().c_str();

extras/tests/JsonDocument/ElementProxy.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include <catch.hpp>
77

88
typedef ArduinoJson::detail::ElementProxy<JsonDocument&> ElementProxy;
9+
using ArduinoJson::detail::sizeofString;
910

1011
TEST_CASE("ElementProxy::add()") {
1112
JsonDocument doc(4096);
@@ -199,7 +200,7 @@ TEST_CASE("ElementProxy::memoryUsage()") {
199200

200201
SECTION("returns size for string") {
201202
ep.set(std::string("hello"));
202-
REQUIRE(ep.memoryUsage() == 6);
203+
REQUIRE(ep.memoryUsage() == sizeofString(5));
203204
}
204205
}
205206

extras/tests/JsonDocument/MemberProxy.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
using ArduinoJson::detail::sizeofArray;
1414
using ArduinoJson::detail::sizeofObject;
15+
using ArduinoJson::detail::sizeofString;
1516

1617
typedef ArduinoJson::detail::MemberProxy<JsonDocument&, const char*>
1718
MemberProxy;
@@ -248,7 +249,7 @@ TEST_CASE("MemberProxy::memoryUsage()") {
248249

249250
SECTION("return the size for a string") {
250251
mp.set(std::string("hello"));
251-
REQUIRE(mp.memoryUsage() == 6);
252+
REQUIRE(mp.memoryUsage() == sizeofString(5));
252253
}
253254
}
254255

@@ -342,7 +343,8 @@ TEST_CASE("Deduplicate keys") {
342343
doc[0][std::string("example")] = 1;
343344
doc[1][std::string("example")] = 2;
344345

345-
CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(1) + 8);
346+
CHECK(doc.memoryUsage() ==
347+
sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7));
346348

347349
const char* key1 = doc[0].as<JsonObject>().begin()->key().c_str();
348350
const char* key2 = doc[1].as<JsonObject>().begin()->key().c_str();
@@ -354,7 +356,8 @@ TEST_CASE("Deduplicate keys") {
354356
doc[0][key] = 1;
355357
doc[1][key] = 2;
356358

357-
CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(1) + 8);
359+
CHECK(doc.memoryUsage() ==
360+
sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7));
358361

359362
const char* key1 = doc[0].as<JsonObject>().begin()->key().c_str();
360363
const char* key2 = doc[1].as<JsonObject>().begin()->key().c_str();
@@ -365,7 +368,8 @@ TEST_CASE("Deduplicate keys") {
365368
doc[0][String("example")] = 1;
366369
doc[1][String("example")] = 2;
367370

368-
CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(1) + 8);
371+
CHECK(doc.memoryUsage() ==
372+
sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7));
369373

370374
const char* key1 = doc[0].as<JsonObject>().begin()->key().c_str();
371375
const char* key2 = doc[1].as<JsonObject>().begin()->key().c_str();
@@ -376,7 +380,8 @@ TEST_CASE("Deduplicate keys") {
376380
doc[0][F("example")] = 1;
377381
doc[1][F("example")] = 2;
378382

379-
CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(1) + 8);
383+
CHECK(doc.memoryUsage() ==
384+
sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7));
380385

381386
const char* key1 = doc[0].as<JsonObject>().begin()->key().c_str();
382387
const char* key2 = doc[1].as<JsonObject>().begin()->key().c_str();

extras/tests/JsonDocument/add.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <catch.hpp>
1212

1313
using ArduinoJson::detail::sizeofArray;
14+
using ArduinoJson::detail::sizeofString;
1415

1516
TEST_CASE("JsonDocument::add()") {
1617
JsonDocument doc(4096);
@@ -31,7 +32,7 @@ TEST_CASE("JsonDocument::add()") {
3132
doc.add(std::string("example"));
3233
doc.add(std::string("example"));
3334

34-
CHECK(doc.memoryUsage() == sizeofArray(2) + 8);
35+
CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7));
3536
CHECK(doc[0].as<const char*>() == doc[1].as<const char*>());
3637
}
3738

@@ -40,23 +41,23 @@ TEST_CASE("JsonDocument::add()") {
4041
doc.add(value);
4142
doc.add(value);
4243

43-
CHECK(doc.memoryUsage() == sizeofArray(2) + 8);
44+
CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7));
4445
CHECK(doc[0].as<const char*>() == doc[1].as<const char*>());
4546
}
4647

4748
SECTION("Arduino String") {
4849
doc.add(String("example"));
4950
doc.add(String("example"));
5051

51-
CHECK(doc.memoryUsage() == sizeofArray(2) + 8);
52+
CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7));
5253
CHECK(doc[0].as<const char*>() == doc[1].as<const char*>());
5354
}
5455

5556
SECTION("Flash string") {
5657
doc.add(F("example"));
5758
doc.add(F("example"));
5859

59-
CHECK(doc.memoryUsage() == sizeofArray(2) + 8);
60+
CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7));
6061
CHECK(doc[0].as<const char*>() == doc[1].as<const char*>());
6162
}
6263
}

0 commit comments

Comments
 (0)