From e9850152a763fbca95eca60e7cf091494dc91e8e Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Fri, 7 Apr 2023 14:43:16 +0200 Subject: [PATCH] Tests: replace constants with `sizeofString(n)` --- extras/tests/Cpp17/string_view.cpp | 11 +- extras/tests/JsonArray/memoryUsage.cpp | 3 +- extras/tests/JsonDeserializer/filter.cpp | 45 ++--- extras/tests/JsonDeserializer/string.cpp | 7 +- extras/tests/JsonDocument/ElementProxy.cpp | 3 +- extras/tests/JsonDocument/MemberProxy.cpp | 15 +- extras/tests/JsonDocument/add.cpp | 9 +- extras/tests/JsonDocument/garbageCollect.cpp | 9 +- extras/tests/JsonDocument/overflowed.cpp | 5 +- extras/tests/JsonDocument/shrinkToFit.cpp | 2 +- extras/tests/JsonObject/memoryUsage.cpp | 3 +- extras/tests/JsonSerializer/std_string.cpp | 4 +- extras/tests/JsonVariant/memoryUsage.cpp | 5 +- extras/tests/MemoryPool/StringCopier.cpp | 6 +- extras/tests/MemoryPool/clear.cpp | 4 +- extras/tests/MemoryPool/saveString.cpp | 10 +- extras/tests/Misc/printable.cpp | 11 +- extras/tests/MsgPackDeserializer/filter.cpp | 170 ++++++++++--------- 18 files changed, 174 insertions(+), 148 deletions(-) diff --git a/extras/tests/Cpp17/string_view.cpp b/extras/tests/Cpp17/string_view.cpp index 203fdf3a..61487dfb 100644 --- a/extras/tests/Cpp17/string_view.cpp +++ b/extras/tests/Cpp17/string_view.cpp @@ -8,6 +8,7 @@ #endif using ArduinoJson::detail::sizeofArray; +using ArduinoJson::detail::sizeofString; TEST_CASE("string_view") { JsonDocument doc(256); @@ -55,16 +56,18 @@ TEST_CASE("string_view") { SECTION("String deduplication") { doc.add(std::string_view("example one", 7)); - REQUIRE(doc.memoryUsage() == sizeofArray(1) + 8); + REQUIRE(doc.memoryUsage() == sizeofArray(1) + sizeofString(7)); doc.add(std::string_view("example two", 7)); - REQUIRE(doc.memoryUsage() == sizeofArray(2) + 8); + REQUIRE(doc.memoryUsage() == sizeofArray(2) + sizeofString(7)); doc.add(std::string_view("example\0tree", 12)); - REQUIRE(doc.memoryUsage() == sizeofArray(3) + 21); + REQUIRE(doc.memoryUsage() == + sizeofArray(3) + sizeofString(7) + sizeofString(12)); doc.add(std::string_view("example\0tree and a half", 12)); - REQUIRE(doc.memoryUsage() == sizeofArray(4) + 21); + REQUIRE(doc.memoryUsage() == + sizeofArray(4) + sizeofString(7) + sizeofString(12)); } SECTION("as()") { diff --git a/extras/tests/JsonArray/memoryUsage.cpp b/extras/tests/JsonArray/memoryUsage.cpp index 3bd3fb26..36857844 100644 --- a/extras/tests/JsonArray/memoryUsage.cpp +++ b/extras/tests/JsonArray/memoryUsage.cpp @@ -7,6 +7,7 @@ using ArduinoJson::detail::sizeofArray; using ArduinoJson::detail::sizeofObject; +using ArduinoJson::detail::sizeofString; TEST_CASE("JsonArray::memoryUsage()") { JsonDocument doc(4096); @@ -28,7 +29,7 @@ TEST_CASE("JsonArray::memoryUsage()") { SECTION("includes the size of the string") { arr.add(std::string("hello")); - REQUIRE(arr.memoryUsage() == sizeofArray(1) + 6); + REQUIRE(arr.memoryUsage() == sizeofArray(1) + sizeofString(5)); } SECTION("includes the size of the nested array") { diff --git a/extras/tests/JsonDeserializer/filter.cpp b/extras/tests/JsonDeserializer/filter.cpp index 9ca5f3c7..c6182965 100644 --- a/extras/tests/JsonDeserializer/filter.cpp +++ b/extras/tests/JsonDeserializer/filter.cpp @@ -11,6 +11,7 @@ using ArduinoJson::detail::sizeofArray; using ArduinoJson::detail::sizeofObject; +using ArduinoJson::detail::sizeofString; TEST_CASE("Filtering") { struct TestCase { @@ -46,7 +47,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"abcdefg\":\"hijklmn\"}", - sizeofObject(1) + 16 + sizeofObject(1) + 2*sizeofString(7) }, { "{\"hello\":\"world\"}", @@ -72,7 +73,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":null}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // Member is a number, but filter wants an array @@ -81,7 +82,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":null}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // Input is an array, but filter wants an object @@ -117,7 +118,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // skip a float @@ -126,7 +127,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // skip false @@ -135,7 +136,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // skip true @@ -144,7 +145,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // skip null @@ -153,7 +154,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // can skip a double-quoted string @@ -162,7 +163,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // can skip a single-quoted string @@ -171,7 +172,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // can skip an empty array @@ -180,7 +181,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // can skip an empty array with spaces in it @@ -189,7 +190,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // can skip an array @@ -198,7 +199,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // can skip an array with spaces in it @@ -207,7 +208,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // can skip an empty object @@ -216,7 +217,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // can skip an empty object with spaces in it @@ -225,7 +226,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // can skip an object @@ -234,7 +235,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // skip an object with spaces in it @@ -243,7 +244,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":42}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { "{\"an_integer\": 0,\"example\":{\"type\":\"int\",\"outcome\":42}}", @@ -251,7 +252,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":{\"outcome\":42}}", - 2 * sizeofObject(1) + 16 + 2 * sizeofObject(1) + 2*sizeofString(7) }, { // wildcard @@ -260,7 +261,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":{\"outcome\":42}}", - 2 * sizeofObject(1) + 16 + 2 * sizeofObject(1) + 2*sizeofString(7) }, { // exclusion filter (issue #1628) @@ -269,7 +270,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "{\"example\":1}", - sizeofObject(1) + 8 + sizeofObject(1) + sizeofString(7) }, { // only the first element of array counts @@ -296,7 +297,7 @@ TEST_CASE("Filtering") { 10, DeserializationError::Ok, "[{\"example\":1},{\"example\":3}]", - sizeofArray(2) + 2 * sizeofObject(1) + 8 + sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7) }, { "[',2,3]", diff --git a/extras/tests/JsonDeserializer/string.cpp b/extras/tests/JsonDeserializer/string.cpp index f26dca39..e20af40d 100644 --- a/extras/tests/JsonDeserializer/string.cpp +++ b/extras/tests/JsonDeserializer/string.cpp @@ -97,7 +97,7 @@ TEST_CASE("Invalid JSON string") { } TEST_CASE("Not enough room to save the key") { - JsonDocument doc(sizeofObject(1) + 8); + JsonDocument doc(sizeofObject(1) + sizeofString(7)); SECTION("Quoted string") { REQUIRE(deserializeJson(doc, "{\"example\":1}") == @@ -139,7 +139,7 @@ TEST_CASE("Deduplicate values") { JsonDocument doc(1024); deserializeJson(doc, "[\"example\",\"example\"]"); - CHECK(doc.memoryUsage() == sizeofArray(2) + 8); + CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7)); CHECK(doc[0].as() == doc[1].as()); } @@ -147,7 +147,8 @@ TEST_CASE("Deduplicate keys") { JsonDocument doc(1024); deserializeJson(doc, "[{\"example\":1},{\"example\":2}]"); - CHECK(doc.memoryUsage() == 2 * sizeofObject(1) + sizeofArray(2) + 8); + CHECK(doc.memoryUsage() == + 2 * sizeofObject(1) + sizeofArray(2) + sizeofString(7)); const char* key1 = doc[0].as().begin()->key().c_str(); const char* key2 = doc[1].as().begin()->key().c_str(); diff --git a/extras/tests/JsonDocument/ElementProxy.cpp b/extras/tests/JsonDocument/ElementProxy.cpp index c147443b..6cf981bc 100644 --- a/extras/tests/JsonDocument/ElementProxy.cpp +++ b/extras/tests/JsonDocument/ElementProxy.cpp @@ -6,6 +6,7 @@ #include typedef ArduinoJson::detail::ElementProxy ElementProxy; +using ArduinoJson::detail::sizeofString; TEST_CASE("ElementProxy::add()") { JsonDocument doc(4096); @@ -199,7 +200,7 @@ TEST_CASE("ElementProxy::memoryUsage()") { SECTION("returns size for string") { ep.set(std::string("hello")); - REQUIRE(ep.memoryUsage() == 6); + REQUIRE(ep.memoryUsage() == sizeofString(5)); } } diff --git a/extras/tests/JsonDocument/MemberProxy.cpp b/extras/tests/JsonDocument/MemberProxy.cpp index 3b54c561..49112237 100644 --- a/extras/tests/JsonDocument/MemberProxy.cpp +++ b/extras/tests/JsonDocument/MemberProxy.cpp @@ -12,6 +12,7 @@ using ArduinoJson::detail::sizeofArray; using ArduinoJson::detail::sizeofObject; +using ArduinoJson::detail::sizeofString; typedef ArduinoJson::detail::MemberProxy MemberProxy; @@ -248,7 +249,7 @@ TEST_CASE("MemberProxy::memoryUsage()") { SECTION("return the size for a string") { mp.set(std::string("hello")); - REQUIRE(mp.memoryUsage() == 6); + REQUIRE(mp.memoryUsage() == sizeofString(5)); } } @@ -342,7 +343,8 @@ TEST_CASE("Deduplicate keys") { doc[0][std::string("example")] = 1; doc[1][std::string("example")] = 2; - CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == + sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7)); const char* key1 = doc[0].as().begin()->key().c_str(); const char* key2 = doc[1].as().begin()->key().c_str(); @@ -354,7 +356,8 @@ TEST_CASE("Deduplicate keys") { doc[0][key] = 1; doc[1][key] = 2; - CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == + sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7)); const char* key1 = doc[0].as().begin()->key().c_str(); const char* key2 = doc[1].as().begin()->key().c_str(); @@ -365,7 +368,8 @@ TEST_CASE("Deduplicate keys") { doc[0][String("example")] = 1; doc[1][String("example")] = 2; - CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == + sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7)); const char* key1 = doc[0].as().begin()->key().c_str(); const char* key2 = doc[1].as().begin()->key().c_str(); @@ -376,7 +380,8 @@ TEST_CASE("Deduplicate keys") { doc[0][F("example")] = 1; doc[1][F("example")] = 2; - CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == + sizeofArray(2) + 2 * sizeofObject(1) + sizeofString(7)); const char* key1 = doc[0].as().begin()->key().c_str(); const char* key2 = doc[1].as().begin()->key().c_str(); diff --git a/extras/tests/JsonDocument/add.cpp b/extras/tests/JsonDocument/add.cpp index fdd6e5da..9a3870c8 100644 --- a/extras/tests/JsonDocument/add.cpp +++ b/extras/tests/JsonDocument/add.cpp @@ -11,6 +11,7 @@ #include using ArduinoJson::detail::sizeofArray; +using ArduinoJson::detail::sizeofString; TEST_CASE("JsonDocument::add()") { JsonDocument doc(4096); @@ -31,7 +32,7 @@ TEST_CASE("JsonDocument::add()") { doc.add(std::string("example")); doc.add(std::string("example")); - CHECK(doc.memoryUsage() == sizeofArray(2) + 8); + CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7)); CHECK(doc[0].as() == doc[1].as()); } @@ -40,7 +41,7 @@ TEST_CASE("JsonDocument::add()") { doc.add(value); doc.add(value); - CHECK(doc.memoryUsage() == sizeofArray(2) + 8); + CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7)); CHECK(doc[0].as() == doc[1].as()); } @@ -48,7 +49,7 @@ TEST_CASE("JsonDocument::add()") { doc.add(String("example")); doc.add(String("example")); - CHECK(doc.memoryUsage() == sizeofArray(2) + 8); + CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7)); CHECK(doc[0].as() == doc[1].as()); } @@ -56,7 +57,7 @@ TEST_CASE("JsonDocument::add()") { doc.add(F("example")); doc.add(F("example")); - CHECK(doc.memoryUsage() == sizeofArray(2) + 8); + CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7)); CHECK(doc[0].as() == doc[1].as()); } } diff --git a/extras/tests/JsonDocument/garbageCollect.cpp b/extras/tests/JsonDocument/garbageCollect.cpp index 6f949bd2..6b25272b 100644 --- a/extras/tests/JsonDocument/garbageCollect.cpp +++ b/extras/tests/JsonDocument/garbageCollect.cpp @@ -10,6 +10,7 @@ #include "Allocators.hpp" using ArduinoJson::detail::sizeofObject; +using ArduinoJson::detail::sizeofString; TEST_CASE("JsonDocument::garbageCollect()") { ControllableAllocator controllableAllocator; @@ -18,13 +19,13 @@ TEST_CASE("JsonDocument::garbageCollect()") { SECTION("when allocation succeeds") { deserializeJson(doc, "{\"blanket\":1,\"dancing\":2}"); - REQUIRE(doc.memoryUsage() == sizeofObject(2) + 16); + REQUIRE(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); doc.remove("blanket"); bool result = doc.garbageCollect(); REQUIRE(result == true); - REQUIRE(doc.memoryUsage() == sizeofObject(1) + 8); + REQUIRE(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); REQUIRE(doc.as() == "{\"dancing\":2}"); REQUIRE(spyingAllocator.log() == AllocatorLog() << AllocatorLog::Allocate(4096) @@ -34,14 +35,14 @@ TEST_CASE("JsonDocument::garbageCollect()") { SECTION("when allocation fails") { deserializeJson(doc, "{\"blanket\":1,\"dancing\":2}"); - REQUIRE(doc.memoryUsage() == sizeofObject(2) + 16); + REQUIRE(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); doc.remove("blanket"); controllableAllocator.disable(); bool result = doc.garbageCollect(); REQUIRE(result == false); - REQUIRE(doc.memoryUsage() == sizeofObject(2) + 16); + REQUIRE(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); REQUIRE(doc.as() == "{\"dancing\":2}"); REQUIRE(spyingAllocator.log() == AllocatorLog() diff --git a/extras/tests/JsonDocument/overflowed.cpp b/extras/tests/JsonDocument/overflowed.cpp index 55690065..fd66160f 100644 --- a/extras/tests/JsonDocument/overflowed.cpp +++ b/extras/tests/JsonDocument/overflowed.cpp @@ -6,6 +6,7 @@ #include using ArduinoJson::detail::sizeofArray; +using ArduinoJson::detail::sizeofString; TEST_CASE("JsonDocument::overflowed()") { SECTION("returns false on a fresh object") { @@ -32,7 +33,7 @@ TEST_CASE("JsonDocument::overflowed()") { } SECTION("returns false after a successful string copy") { - JsonDocument doc(sizeofArray(1) + 8); + JsonDocument doc(sizeofArray(1) + sizeofString(7)); doc.add(std::string("example")); CHECK(doc.overflowed() == false); } @@ -50,7 +51,7 @@ TEST_CASE("JsonDocument::overflowed()") { } SECTION("returns false after a successful deserialization") { - JsonDocument doc(sizeofArray(1) + 8); + JsonDocument doc(sizeofArray(1) + sizeofString(7)); deserializeJson(doc, "[\"example\"]"); CHECK(doc.overflowed() == false); } diff --git a/extras/tests/JsonDocument/shrinkToFit.cpp b/extras/tests/JsonDocument/shrinkToFit.cpp index a43c8f03..9e36ef78 100644 --- a/extras/tests/JsonDocument/shrinkToFit.cpp +++ b/extras/tests/JsonDocument/shrinkToFit.cpp @@ -200,7 +200,7 @@ TEST_CASE("JsonDocument::shrinkToFit()") { SECTION("unaligned") { doc.add(std::string("?")); // two bytes in the string pool - REQUIRE(doc.memoryUsage() == sizeofObject(1) + 2); + REQUIRE(doc.memoryUsage() == sizeofObject(1) + sizeofString(1)); doc.shrinkToFit(); diff --git a/extras/tests/JsonObject/memoryUsage.cpp b/extras/tests/JsonObject/memoryUsage.cpp index 30900b7f..2462b85d 100644 --- a/extras/tests/JsonObject/memoryUsage.cpp +++ b/extras/tests/JsonObject/memoryUsage.cpp @@ -8,6 +8,7 @@ using ArduinoJson::detail::sizeofArray; using ArduinoJson::detail::sizeofObject; +using ArduinoJson::detail::sizeofString; TEST_CASE("JsonObject::memoryUsage()") { JsonDocument doc(4096); @@ -29,7 +30,7 @@ TEST_CASE("JsonObject::memoryUsage()") { SECTION("includes the size of the key") { obj[std::string("hello")] = 42; - REQUIRE(obj.memoryUsage() == sizeofObject(1) + 6); + REQUIRE(obj.memoryUsage() == sizeofObject(1) + sizeofString(5)); } SECTION("includes the size of the nested array") { diff --git a/extras/tests/JsonSerializer/std_string.cpp b/extras/tests/JsonSerializer/std_string.cpp index d819c8b5..bf452093 100644 --- a/extras/tests/JsonSerializer/std_string.cpp +++ b/extras/tests/JsonSerializer/std_string.cpp @@ -5,6 +5,8 @@ #include #include +using ArduinoJson::detail::sizeofString; + TEST_CASE("serialize JsonArray to std::string") { JsonDocument doc(4096); JsonArray array = doc.to(); @@ -49,7 +51,7 @@ TEST_CASE("serialize JsonObject to std::string") { TEST_CASE("serialize an std::string containing a NUL") { JsonDocument doc(256); doc.set(std::string("hello\0world", 11)); - CHECK(doc.memoryUsage() == 12); + CHECK(doc.memoryUsage() == sizeofString(11)); std::string json; serializeJson(doc, json); diff --git a/extras/tests/JsonVariant/memoryUsage.cpp b/extras/tests/JsonVariant/memoryUsage.cpp index 7e7b1d9a..7026329d 100644 --- a/extras/tests/JsonVariant/memoryUsage.cpp +++ b/extras/tests/JsonVariant/memoryUsage.cpp @@ -8,6 +8,7 @@ using ArduinoJson::detail::sizeofArray; using ArduinoJson::detail::sizeofObject; +using ArduinoJson::detail::sizeofString; TEST_CASE("JsonVariant::memoryUsage()") { JsonDocument doc(4096); @@ -32,13 +33,13 @@ TEST_CASE("JsonVariant::memoryUsage()") { SECTION("returns size of owned string") { var.set(std::string("hello")); - REQUIRE(var.memoryUsage() == 6); + REQUIRE(var.memoryUsage() == sizeofString(5)); REQUIRE(var.memoryUsage() == doc.memoryUsage()); } SECTION("returns size of owned raw") { var.set(serialized(std::string("hello"))); - REQUIRE(var.memoryUsage() == 6); + REQUIRE(var.memoryUsage() == sizeofString(5)); REQUIRE(var.memoryUsage() == doc.memoryUsage()); } } diff --git a/extras/tests/MemoryPool/StringCopier.cpp b/extras/tests/MemoryPool/StringCopier.cpp index 036b1310..bd28b4fd 100644 --- a/extras/tests/MemoryPool/StringCopier.cpp +++ b/extras/tests/MemoryPool/StringCopier.cpp @@ -69,7 +69,7 @@ TEST_CASE("StringCopier::save() deduplicates strings") { REQUIRE(s1 == s3); REQUIRE(s2 != s3); - REQUIRE(pool.size() == 12); + REQUIRE(pool.size() == 2 * sizeofString(5)); } SECTION("Requires terminator") { @@ -77,7 +77,7 @@ TEST_CASE("StringCopier::save() deduplicates strings") { const char* s2 = addStringToPool(pool, "hello"); REQUIRE(s2 != s1); - REQUIRE(pool.size() == 12 + 6); + REQUIRE(pool.size() == sizeofString(11) + sizeofString(5)); } SECTION("Don't overrun") { @@ -85,6 +85,6 @@ TEST_CASE("StringCopier::save() deduplicates strings") { const char* s2 = addStringToPool(pool, "wor"); REQUIRE(s2 != s1); - REQUIRE(pool.size() == 12 + 4); + REQUIRE(pool.size() == sizeofString(11) + sizeofString(3)); } } diff --git a/extras/tests/MemoryPool/clear.cpp b/extras/tests/MemoryPool/clear.cpp index a904819b..45736393 100644 --- a/extras/tests/MemoryPool/clear.cpp +++ b/extras/tests/MemoryPool/clear.cpp @@ -21,8 +21,8 @@ TEST_CASE("MemoryPool::clear()") { } SECTION("Discards allocated strings") { - pool.saveString(adaptString(const_cast("123456789"))); - REQUIRE(pool.size() == 10); + pool.saveString(adaptString("123456789")); + REQUIRE(pool.size() == sizeofString(9)); pool.clear(); diff --git a/extras/tests/MemoryPool/saveString.cpp b/extras/tests/MemoryPool/saveString.cpp index 81e1f881..e7c704fa 100644 --- a/extras/tests/MemoryPool/saveString.cpp +++ b/extras/tests/MemoryPool/saveString.cpp @@ -11,7 +11,7 @@ using namespace ArduinoJson::detail; static const char* saveString(MemoryPool& pool, const char* s) { - return pool.saveString(adaptString(const_cast(s))); + return pool.saveString(adaptString(s)); } static const char* saveString(MemoryPool& pool, const char* s, size_t n) { @@ -25,21 +25,20 @@ TEST_CASE("MemoryPool::saveString()") { const char* a = saveString(pool, "hello"); const char* b = saveString(pool, "world"); REQUIRE(a != b); - REQUIRE(pool.size() == 6 + 6); + REQUIRE(pool.size() == 2 * sizeofString(5)); } SECTION("Deduplicates identical strings") { const char* a = saveString(pool, "hello"); const char* b = saveString(pool, "hello"); REQUIRE(a == b); - REQUIRE(pool.size() == 6); + REQUIRE(pool.size() == sizeofString(5)); } SECTION("Deduplicates identical strings that contain NUL") { const char* a = saveString(pool, "hello\0world", 11); const char* b = saveString(pool, "hello\0world", 11); REQUIRE(a == b); - REQUIRE(pool.size() == 12); } SECTION("Reuse part of a string if it ends with NUL") { @@ -47,13 +46,14 @@ TEST_CASE("MemoryPool::saveString()") { const char* b = saveString(pool, "hello"); REQUIRE(a == b); REQUIRE(pool.size() == 12); + REQUIRE(pool.size() == sizeofString(11)); } SECTION("Don't stop on first NUL") { const char* a = saveString(pool, "hello"); const char* b = saveString(pool, "hello\0world", 11); REQUIRE(a != b); - REQUIRE(pool.size() == 18); + REQUIRE(pool.size() == sizeofString(5) + sizeofString(11)); } SECTION("Returns NULL when full") { diff --git a/extras/tests/Misc/printable.cpp b/extras/tests/Misc/printable.cpp index a66a23e5..f39e2183 100644 --- a/extras/tests/Misc/printable.cpp +++ b/extras/tests/Misc/printable.cpp @@ -9,6 +9,7 @@ #include using ArduinoJson::detail::sizeofArray; +using ArduinoJson::detail::sizeofString; struct PrintOneCharacterAtATime { static size_t printStringTo(const std::string& s, Print& p) { @@ -61,8 +62,8 @@ TEST_CASE("Printable") { CHECK(doc.as() == value); CHECK(printable.totalBytesWritten() == 7); CHECK(doc.overflowed() == false); - CHECK(doc.memoryUsage() == 8); - CHECK(doc.as().memoryUsage() == 8); + CHECK(doc.memoryUsage() == sizeofString(7)); + CHECK(doc.as().memoryUsage() == sizeofString(7)); } SECTION("Via Print::write(const char* size_t)") { @@ -71,8 +72,8 @@ TEST_CASE("Printable") { CHECK(doc.as() == value); CHECK(printable.totalBytesWritten() == 7); CHECK(doc.overflowed() == false); - CHECK(doc.memoryUsage() == 8); - CHECK(doc.as().memoryUsage() == 8); + CHECK(doc.memoryUsage() == sizeofString(7)); + CHECK(doc.as().memoryUsage() == sizeofString(7)); } } @@ -141,6 +142,6 @@ TEST_CASE("Printable") { REQUIRE(doc.size() == 2); CHECK(doc[0] == "Hello World!"); CHECK(doc[1] == "Hello World!"); - CHECK(doc.memoryUsage() == sizeofArray(2) + 13); + CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(12)); } } diff --git a/extras/tests/MsgPackDeserializer/filter.cpp b/extras/tests/MsgPackDeserializer/filter.cpp index 74a25c6a..ee49b1a8 100644 --- a/extras/tests/MsgPackDeserializer/filter.cpp +++ b/extras/tests/MsgPackDeserializer/filter.cpp @@ -60,7 +60,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("reject 0xc1") { @@ -76,7 +76,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip true") { @@ -85,7 +85,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip positive fixint") { @@ -94,7 +94,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip negative fixint") { @@ -103,7 +103,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip uint 8") { @@ -112,7 +112,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip int 8") { @@ -121,7 +121,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip uint 16") { @@ -130,7 +130,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip int 16") { @@ -139,7 +139,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip uint 32") { @@ -149,7 +149,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip int 32") { @@ -159,7 +159,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip uint 64") { @@ -170,7 +170,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip int 64") { @@ -181,7 +181,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip float 32") { @@ -191,7 +191,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip float 64") { @@ -202,7 +202,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip fixstr") { @@ -211,7 +211,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip str 8") { @@ -220,7 +220,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip str 16") { @@ -229,7 +229,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip str 32") { @@ -239,7 +239,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip bin 8") { @@ -248,7 +248,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip bin 16") { @@ -257,7 +257,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip bin 32") { @@ -267,7 +267,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip fixarray") { @@ -276,7 +276,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip array 16") { @@ -286,7 +286,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip array 32") { @@ -299,7 +299,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip fixmap") { @@ -309,7 +309,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip map 16") { @@ -321,7 +321,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip map 32") { @@ -335,7 +335,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip fixext 1") { @@ -347,7 +347,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip fixext 2") { @@ -359,7 +359,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip fixext 4") { @@ -371,7 +371,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip fixext 8") { @@ -383,7 +383,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip fixext 16") { @@ -397,7 +397,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip ext 8") { @@ -409,7 +409,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip ext 16") { @@ -421,7 +421,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } SECTION("skip ext 32") { @@ -433,7 +433,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(1) + 8); + CHECK(doc.memoryUsage() == sizeofObject(1) + sizeofString(7)); } } @@ -454,7 +454,8 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":[{\"measure\":2},{\"measure\":4}],\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(2) + 24); + CHECK(doc.memoryUsage() == + sizeofArray(2) + 2 * sizeofObject(2) + 3 * sizeofString(7)); } SECTION("include array 16") { @@ -469,7 +470,8 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":[{\"measure\":2},{\"measure\":4}],\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(2) + 24); + CHECK(doc.memoryUsage() == + sizeofArray(2) + 2 * sizeofObject(2) + 3 * sizeofString(7)); } SECTION("include array 32") { @@ -484,7 +486,8 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":[{\"measure\":2},{\"measure\":4}],\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofArray(2) + 2 * sizeofObject(2) + 24); + CHECK(doc.memoryUsage() == + sizeofArray(2) + 2 * sizeofObject(2) + 3 * sizeofString(7)); } SECTION("skip null") { @@ -493,7 +496,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip false") { @@ -502,7 +505,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip true") { @@ -511,7 +514,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip positive fixint") { @@ -520,7 +523,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip negative fixint") { @@ -529,7 +532,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip uint 8") { @@ -538,7 +541,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip uint 16") { @@ -547,7 +550,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip uint 32") { @@ -557,7 +560,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip uint 64") { @@ -568,7 +571,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip int 8") { @@ -577,7 +580,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip int 16") { @@ -586,7 +589,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip int 32") { @@ -596,7 +599,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip int 64") { @@ -607,7 +610,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip float 32") { @@ -617,7 +620,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip float 64") { @@ -628,7 +631,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip fixstr") { @@ -637,7 +640,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip str 8") { @@ -659,7 +662,7 @@ TEST_CASE("deserializeMsgPack() filter") { doc, "\x82\xA7onlyarr\xdb\x00\x00\x00\x05hello\xA7include\x2A", filterOpt); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip fixmap") { @@ -669,7 +672,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip map 16") { @@ -681,7 +684,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip map 32") { @@ -695,7 +698,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyarr\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } } } @@ -744,7 +747,8 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":{\"measure\":2},\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + sizeofObject(1) + 24); + CHECK(doc.memoryUsage() == + sizeofObject(2) + sizeofObject(1) + 3 * sizeofString(7)); } SECTION("include map 16") { @@ -757,7 +761,8 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":{\"measure\":2},\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + sizeofObject(1) + 24); + CHECK(doc.memoryUsage() == + sizeofObject(2) + sizeofObject(1) + 3 * sizeofString(7)); } SECTION("include map 32") { @@ -771,7 +776,8 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":{\"measure\":2},\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + sizeofObject(1) + 24); + CHECK(doc.memoryUsage() == + sizeofObject(2) + sizeofObject(1) + 3 * sizeofString(7)); } SECTION("skip null") { @@ -780,7 +786,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip false") { @@ -789,7 +795,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip true") { @@ -798,7 +804,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip positive fixint") { @@ -807,7 +813,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip negative fixint") { @@ -816,7 +822,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip uint 8") { @@ -825,7 +831,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip uint 16") { @@ -834,7 +840,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip uint 32") { @@ -843,7 +849,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip uint 64") { @@ -854,7 +860,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip int 8") { @@ -863,7 +869,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip int 16") { @@ -872,7 +878,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip int 32") { @@ -881,7 +887,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip int 64") { @@ -892,7 +898,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip float 32") { @@ -901,7 +907,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip float 64") { @@ -912,7 +918,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip fixstr") { @@ -921,7 +927,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip str 8") { @@ -943,7 +949,7 @@ TEST_CASE("deserializeMsgPack() filter") { doc, "\x82\xA7onlyobj\xdb\x00\x00\x00\x05hello\xA7include\x2A", filterOpt); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip fixarray") { @@ -952,7 +958,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip array 16") { @@ -963,7 +969,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } SECTION("skip array 32") { @@ -975,7 +981,7 @@ TEST_CASE("deserializeMsgPack() filter") { CHECK(error == DeserializationError::Ok); CHECK(doc.as() == "{\"onlyobj\":null,\"include\":42}"); - CHECK(doc.memoryUsage() == sizeofObject(2) + 16); + CHECK(doc.memoryUsage() == sizeofObject(2) + 2 * sizeofString(7)); } }