瀏覽代碼

Remove capacity from `JsonDocument`'s constructor

Benoit Blanchon 2 年之前
父節點
當前提交
0f319e7ca4
共有 100 個文件被更改,包括 258 次插入276 次删除
  1. 1 1
      .github/ISSUE_TEMPLATE/bug_report.md
  2. 1 1
      .github/ISSUE_TEMPLATE/help.md
  3. 2 2
      .github/workflows/ci.yml
  4. 2 1
      CHANGELOG.md
  5. 2 2
      README.md
  6. 2 2
      examples/JsonConfigFile/JsonConfigFile.ino
  7. 2 2
      examples/JsonFilterExample/JsonFilterExample.ino
  8. 1 1
      examples/JsonGeneratorExample/JsonGeneratorExample.ino
  9. 3 2
      examples/JsonHttpClient/JsonHttpClient.ino
  10. 1 1
      examples/JsonParserExample/JsonParserExample.ino
  11. 1 1
      examples/JsonServer/JsonServer.ino
  12. 1 1
      examples/JsonUdpBeacon/JsonUdpBeacon.ino
  13. 1 1
      examples/MsgPackParser/MsgPackParser.ino
  14. 1 1
      examples/ProgmemExample/ProgmemExample.ino
  15. 1 1
      examples/StringExample/StringExample.ino
  16. 1 1
      extras/ci/espidf/main/main.cpp
  17. 1 1
      extras/fuzzing/json_fuzzer.cpp
  18. 1 1
      extras/fuzzing/msgpack_fuzzer.cpp
  19. 1 1
      extras/scripts/wandbox/JsonGeneratorExample.cpp
  20. 1 1
      extras/scripts/wandbox/JsonParserExample.cpp
  21. 1 1
      extras/scripts/wandbox/MsgPackParserExample.cpp
  22. 1 1
      extras/tests/Cpp17/string_view.cpp
  23. 1 1
      extras/tests/Cpp20/smoke_test.cpp
  24. 1 1
      extras/tests/FailingBuilds/Issue978.cpp
  25. 1 1
      extras/tests/FailingBuilds/assign_char.cpp
  26. 1 1
      extras/tests/FailingBuilds/read_long_long.cpp
  27. 1 1
      extras/tests/FailingBuilds/variant_as_char.cpp
  28. 1 1
      extras/tests/FailingBuilds/write_long_long.cpp
  29. 1 1
      extras/tests/IntegrationTests/gbathree.cpp
  30. 2 2
      extras/tests/IntegrationTests/issue772.cpp
  31. 2 2
      extras/tests/IntegrationTests/openweathermap.cpp
  32. 1 1
      extras/tests/IntegrationTests/round_trip.cpp
  33. 5 5
      extras/tests/JsonArray/add.cpp
  34. 1 1
      extras/tests/JsonArray/clear.cpp
  35. 6 6
      extras/tests/JsonArray/compare.cpp
  36. 23 25
      extras/tests/JsonArray/copyArray.cpp
  37. 1 1
      extras/tests/JsonArray/createNested.cpp
  38. 2 2
      extras/tests/JsonArray/equals.cpp
  39. 4 4
      extras/tests/JsonArray/isNull.cpp
  40. 1 3
      extras/tests/JsonArray/iterator.cpp
  41. 1 1
      extras/tests/JsonArray/memoryUsage.cpp
  42. 1 1
      extras/tests/JsonArray/nesting.cpp
  43. 1 1
      extras/tests/JsonArray/remove.cpp
  44. 1 1
      extras/tests/JsonArray/size.cpp
  45. 1 1
      extras/tests/JsonArray/std_string.cpp
  46. 6 6
      extras/tests/JsonArray/subscript.cpp
  47. 2 3
      extras/tests/JsonDeserializer/array.cpp
  48. 6 6
      extras/tests/JsonDeserializer/filter.cpp
  49. 1 1
      extras/tests/JsonDeserializer/incomplete_input.cpp
  50. 15 15
      extras/tests/JsonDeserializer/input_types.cpp
  51. 2 2
      extras/tests/JsonDeserializer/invalid_input.cpp
  52. 1 1
      extras/tests/JsonDeserializer/misc.cpp
  53. 1 1
      extras/tests/JsonDeserializer/nestingLimit.cpp
  54. 1 1
      extras/tests/JsonDeserializer/number.cpp
  55. 2 3
      extras/tests/JsonDeserializer/object.cpp
  56. 8 8
      extras/tests/JsonDeserializer/string.cpp
  57. 10 10
      extras/tests/JsonDocument/ElementProxy.cpp
  58. 19 19
      extras/tests/JsonDocument/MemberProxy.cpp
  59. 1 1
      extras/tests/JsonDocument/add.cpp
  60. 18 22
      extras/tests/JsonDocument/assignment.cpp
  61. 1 1
      extras/tests/JsonDocument/cast.cpp
  62. 2 2
      extras/tests/JsonDocument/compare.cpp
  63. 6 8
      extras/tests/JsonDocument/constructor.cpp
  64. 1 1
      extras/tests/JsonDocument/containsKey.cpp
  65. 4 4
      extras/tests/JsonDocument/createNested.cpp
  66. 1 2
      extras/tests/JsonDocument/garbageCollect.cpp
  67. 1 1
      extras/tests/JsonDocument/isNull.cpp
  68. 1 1
      extras/tests/JsonDocument/issue1120.cpp
  69. 1 1
      extras/tests/JsonDocument/memoryUsage.cpp
  70. 1 1
      extras/tests/JsonDocument/nesting.cpp
  71. 1 3
      extras/tests/JsonDocument/overflowed.cpp
  72. 1 1
      extras/tests/JsonDocument/remove.cpp
  73. 1 1
      extras/tests/JsonDocument/shrinkToFit.cpp
  74. 1 1
      extras/tests/JsonDocument/size.cpp
  75. 3 3
      extras/tests/JsonDocument/subscript.cpp
  76. 1 1
      extras/tests/JsonDocument/swap.cpp
  77. 1 1
      extras/tests/JsonObject/clear.cpp
  78. 6 6
      extras/tests/JsonObject/compare.cpp
  79. 1 1
      extras/tests/JsonObject/containsKey.cpp
  80. 4 6
      extras/tests/JsonObject/copy.cpp
  81. 1 1
      extras/tests/JsonObject/createNestedArray.cpp
  82. 1 1
      extras/tests/JsonObject/createNestedObject.cpp
  83. 2 2
      extras/tests/JsonObject/equals.cpp
  84. 4 4
      extras/tests/JsonObject/isNull.cpp
  85. 2 3
      extras/tests/JsonObject/iterator.cpp
  86. 1 1
      extras/tests/JsonObject/memoryUsage.cpp
  87. 1 1
      extras/tests/JsonObject/nesting.cpp
  88. 1 1
      extras/tests/JsonObject/remove.cpp
  89. 1 1
      extras/tests/JsonObject/size.cpp
  90. 1 1
      extras/tests/JsonObject/std_string.cpp
  91. 5 5
      extras/tests/JsonObject/subscript.cpp
  92. 1 1
      extras/tests/JsonSerializer/CustomWriter.cpp
  93. 1 3
      extras/tests/JsonSerializer/JsonArray.cpp
  94. 1 1
      extras/tests/JsonSerializer/JsonArrayPretty.cpp
  95. 5 5
      extras/tests/JsonSerializer/JsonObject.cpp
  96. 1 1
      extras/tests/JsonSerializer/JsonObjectPretty.cpp
  97. 1 1
      extras/tests/JsonSerializer/JsonVariant.cpp
  98. 3 3
      extras/tests/JsonSerializer/misc.cpp
  99. 1 1
      extras/tests/JsonSerializer/std_stream.cpp
  100. 3 3
      extras/tests/JsonSerializer/std_string.cpp

+ 1 - 1
.github/ISSUE_TEMPLATE/bug_report.md

@@ -27,7 +27,7 @@ Here is the environment that I used:
 Here is a small snippet that reproduces the issue.
 
 ```c++
-JsonDocument doc(1024);
+JsonDocument doc;
 
 DeserializationError error = deserializeJson(doc, "{\"hello\":\"world\"}");
 

+ 1 - 1
.github/ISSUE_TEMPLATE/help.md

@@ -28,7 +28,7 @@ Here is the environment that I'm using':
 Here is a small snippet that demonstrate the problem.
 
 ```c++
-JsonDocument doc(1024);
+JsonDocument doc;
 
 DeserializationError error = deserializeJson(doc, "{\"hello\":\"world\"}");
 

+ 2 - 2
.github/workflows/ci.yml

@@ -484,7 +484,7 @@ jobs:
           g++ -x c++ - <<END
           #include "${{ steps.amalgamate.outputs.filename }}"
           int main() {
-            JsonDocument doc(300);
+            JsonDocument doc;
             deserializeJson(doc, "{}");
           }
           END
@@ -518,7 +518,7 @@ jobs:
           g++ -x c++ - <<END
           #include "${{ steps.amalgamate.outputs.filename }}"
           int main() {
-            ArduinoJson::JsonDocument doc(300);
+            ArduinoJson::JsonDocument doc;
             deserializeJson(doc, "{}");
           }
           END

+ 2 - 1
CHANGELOG.md

@@ -18,4 +18,5 @@ HEAD
 * Fix double lookup in `to<JsonVariant>()`
 * Fix double call to `size()` in `serializeMsgPack()`
 * Include `ARDUINOJSON_SLOT_OFFSET_SIZE` in the namespace name
-* Remove `JsonVariant::shallowCopy()` 
+* Remove `JsonVariant::shallowCopy()`
+* `JsonDocument`'s capacity grows as needed, no need to pass it to the constructor anymore

+ 2 - 2
README.md

@@ -106,7 +106,7 @@ Here is a program that parses a JSON document with ArduinoJson.
 ```c++
 char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";
 
-JsonDocument doc(1024);
+JsonDocument doc;
 deserializeJson(doc, json);
 
 const char* sensor = doc["sensor"];
@@ -122,7 +122,7 @@ See the [tutorial on arduinojson.org](https://arduinojson.org/v6/doc/deserializa
 Here is a program that generates a JSON document with ArduinoJson:
 
 ```c++
-JsonDocument doc(1024);
+JsonDocument doc;
 
 doc["sensor"] = "gps";
 doc["time"]   = 1351824120;

+ 2 - 2
examples/JsonConfigFile/JsonConfigFile.ino

@@ -45,7 +45,7 @@ void loadConfiguration(const char* filename, Config& config) {
   // Allocate a temporary JsonDocument
   // Don't forget to change the capacity to match your requirements.
   // Use https://arduinojson.org/v6/assistant to compute the capacity.
-  JsonDocument doc(512);
+  JsonDocument doc;
 
   // Deserialize the JSON document
   DeserializationError error = deserializeJson(doc, file);
@@ -77,7 +77,7 @@ void saveConfiguration(const char* filename, const Config& config) {
   // Allocate a temporary JsonDocument
   // Don't forget to change the capacity to match your requirements.
   // Use https://arduinojson.org/assistant to compute the capacity.
-  JsonDocument doc(256);
+  JsonDocument doc;
 
   // Set the values in the document
   doc["hostname"] = config.hostname;

+ 2 - 2
examples/JsonFilterExample/JsonFilterExample.ino

@@ -34,12 +34,12 @@ void setup() {
       "1000000,\"timezone\":0,\"sunrise\":1581492085,\"sunset\":1581527294}}");
 
   // The filter: it contains "true" for each value we want to keep
-  JsonDocument filter(200);
+  JsonDocument filter;
   filter["list"][0]["dt"] = true;
   filter["list"][0]["main"]["temp"] = true;
 
   // Deserialize the document
-  JsonDocument doc(400);
+  JsonDocument doc;
   deserializeJson(doc, input_json, DeserializationOption::Filter(filter));
 
   // Print the result

+ 1 - 1
examples/JsonGeneratorExample/JsonGeneratorExample.ino

@@ -19,7 +19,7 @@ void setup() {
   // Inside the parentheses, 200 is the RAM allocated to this document.
   // Don't forget to change this value to match your requirement.
   // Use https://arduinojson.org/v6/assistant to compute the capacity.
-  JsonDocument doc(200);
+  JsonDocument doc;
 
   // Add values in the document
   //

+ 3 - 2
examples/JsonHttpClient/JsonHttpClient.ino

@@ -25,7 +25,8 @@
 void setup() {
   // Initialize Serial port
   Serial.begin(9600);
-  while (!Serial) continue;
+  while (!Serial)
+    continue;
 
   // Initialize Ethernet library
   byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
@@ -78,7 +79,7 @@ void setup() {
 
   // Allocate the JSON document
   // Use https://arduinojson.org/v6/assistant to compute the capacity.
-  JsonDocument doc(256);
+  JsonDocument doc;
 
   // Parse JSON object
   DeserializationError error = deserializeJson(doc, client);

+ 1 - 1
examples/JsonParserExample/JsonParserExample.ino

@@ -19,7 +19,7 @@ void setup() {
   // Inside the parentheses, 200 is the capacity of the memory pool in bytes.
   // Don't forget to change this value to match your JSON document.
   // Use https://arduinojson.org/v6/assistant to compute the capacity.
-  JsonDocument doc(200);
+  JsonDocument doc;
 
   // JSON input string.
   //

+ 1 - 1
examples/JsonServer/JsonServer.ino

@@ -58,7 +58,7 @@ void loop() {
 
   // Allocate a temporary JsonDocument
   // Use https://arduinojson.org/v6/assistant to compute the capacity.
-  JsonDocument doc(500);
+  JsonDocument doc;
 
   // Create the "analog" array
   JsonArray analogValues = doc.createNestedArray("analog");

+ 1 - 1
examples/JsonUdpBeacon/JsonUdpBeacon.ino

@@ -48,7 +48,7 @@ void setup() {
 void loop() {
   // Allocate a temporary JsonDocument
   // Use https://arduinojson.org/v6/assistant to compute the capacity.
-  JsonDocument doc(500);
+  JsonDocument doc;
 
   // Create the "analog" array
   JsonArray analogValues = doc.createNestedArray("analog");

+ 1 - 1
examples/MsgPackParser/MsgPackParser.ino

@@ -20,7 +20,7 @@ void setup() {
   // Inside the parentheses, 200 is the capacity of the memory pool in bytes.
   // Don't forget to change this value to match your JSON document.
   // Use https://arduinojson.org/v6/assistant to compute the capacity.
-  JsonDocument doc(200);
+  JsonDocument doc;
 
   // MessagePack input string.
   //

+ 1 - 1
examples/ProgmemExample/ProgmemExample.ino

@@ -14,7 +14,7 @@
 #include <ArduinoJson.h>
 
 void setup() {
-  JsonDocument doc(1024);
+  JsonDocument doc;
 
   // You can use a Flash String as your JSON input.
   // WARNING: the strings in the input will be duplicated in the JsonDocument.

+ 1 - 1
examples/StringExample/StringExample.ino

@@ -13,7 +13,7 @@
 #include <ArduinoJson.h>
 
 void setup() {
-  JsonDocument doc(1024);
+  JsonDocument doc;
 
   // You can use a String as your JSON input.
   // WARNING: the string in the input  will be duplicated in the JsonDocument.

+ 1 - 1
extras/ci/espidf/main/main.cpp

@@ -6,7 +6,7 @@
 
 extern "C" void app_main() {
   char buffer[256];
-  JsonDocument doc(200);
+  JsonDocument doc;
 
   doc["hello"] = "world";
   serializeJson(doc, buffer);

+ 1 - 1
extras/fuzzing/json_fuzzer.cpp

@@ -1,7 +1,7 @@
 #include <ArduinoJson.h>
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   DeserializationError error = deserializeJson(doc, data, size);
   if (!error) {
     std::string json;

+ 1 - 1
extras/fuzzing/msgpack_fuzzer.cpp

@@ -1,7 +1,7 @@
 #include <ArduinoJson.h>
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   DeserializationError error = deserializeMsgPack(doc, data, size);
   if (!error) {
     std::string json;

+ 1 - 1
extras/scripts/wandbox/JsonGeneratorExample.cpp

@@ -13,7 +13,7 @@ int main() {
   // Inside the parentheses, 200 is the RAM allocated to this document.
   // Don't forget to change this value to match your requirement.
   // Use https://arduinojson.org/v6/assistant to compute the capacity.
-  JsonDocument doc(200);
+  JsonDocument doc;
 
   // Add values in the document
   //

+ 1 - 1
extras/scripts/wandbox/JsonParserExample.cpp

@@ -13,7 +13,7 @@ int main() {
   // Inside the parentheses, 200 is the capacity of the memory pool in bytes.
   // Don't forget to change this value to match your JSON document.
   // Use https://arduinojson.org/v6/assistant to compute the capacity.
-  JsonDocument doc(300);
+  JsonDocument doc;
 
   // JSON input string.
   //

+ 1 - 1
extras/scripts/wandbox/MsgPackParserExample.cpp

@@ -13,7 +13,7 @@ int main() {
   // Inside the parentheses, 300 is the size of the memory pool in bytes.
   // Don't forget to change this value to match your JSON document.
   // Use https://arduinojson.org/assistant to compute the capacity.
-  JsonDocument doc(300);
+  JsonDocument doc;
 
   // MessagePack input string.
   //

+ 1 - 1
extras/tests/Cpp17/string_view.cpp

@@ -11,7 +11,7 @@ using ArduinoJson::detail::sizeofArray;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("string_view") {
-  JsonDocument doc(256);
+  JsonDocument doc;
   JsonVariant variant = doc.to<JsonVariant>();
 
   SECTION("deserializeJson()") {

+ 1 - 1
extras/tests/Cpp20/smoke_test.cpp

@@ -4,7 +4,7 @@
 #include <string>
 
 TEST_CASE("C++20 smoke test") {
-  JsonDocument doc(128);
+  JsonDocument doc;
 
   deserializeJson(doc, "{\"hello\":\"world\"}");
   REQUIRE(doc["hello"] == "world");

+ 1 - 1
extras/tests/FailingBuilds/Issue978.cpp

@@ -8,6 +8,6 @@ struct Stream {};
 
 int main() {
   Stream* stream = 0;
-  JsonDocument doc(1024);
+  JsonDocument doc;
   deserializeJson(doc, stream);
 }

+ 1 - 1
extras/tests/FailingBuilds/assign_char.cpp

@@ -7,6 +7,6 @@
 // See issue #1498
 
 int main() {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   doc["dummy"] = 'A';
 }

+ 1 - 1
extras/tests/FailingBuilds/read_long_long.cpp

@@ -11,6 +11,6 @@
 
 ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(long long)
 int main() {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   doc["dummy"].as<long long>();
 }

+ 1 - 1
extras/tests/FailingBuilds/variant_as_char.cpp

@@ -7,6 +7,6 @@
 // See issue #1498
 
 int main() {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   doc["dummy"].as<char>();
 }

+ 1 - 1
extras/tests/FailingBuilds/write_long_long.cpp

@@ -10,6 +10,6 @@
 #endif
 
 int main() {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   doc["dummy"] = static_cast<long long>(42);
 }

+ 1 - 1
extras/tests/IntegrationTests/gbathree.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("Gbathree") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   DeserializationError error = deserializeJson(
       doc,

+ 2 - 2
extras/tests/IntegrationTests/issue772.cpp

@@ -8,8 +8,8 @@
 // https://github.com/bblanchon/ArduinoJson/issues/772
 
 TEST_CASE("Issue772") {
-  JsonDocument doc1(4096);
-  JsonDocument doc2(4096);
+  JsonDocument doc1;
+  JsonDocument doc2;
   DeserializationError err;
   std::string data =
       "{\"state\":{\"reported\":{\"timestamp\":\"2018-07-02T09:40:12Z\","

+ 2 - 2
extras/tests/IntegrationTests/openweathermap.cpp

@@ -53,12 +53,12 @@ TEST_CASE("OpenWeatherMap") {
       "]}";
   // clang-format on
 
-  JsonDocument filter(512);
+  JsonDocument filter;
   filter["list"][0]["dt"] = true;
   filter["list"][0]["main"]["temp"] = true;
   filter["list"][0]["weather"][0]["description"] = true;
 
-  JsonDocument doc(16384);
+  JsonDocument doc;
 
   REQUIRE(
       deserializeJson(doc, input_json, DeserializationOption::Filter(filter)) ==

+ 1 - 1
extras/tests/IntegrationTests/round_trip.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 void check(std::string originalJson) {
-  JsonDocument doc(16384);
+  JsonDocument doc;
 
   std::string prettyJson;
   deserializeJson(doc, originalJson);

+ 5 - 5
extras/tests/JsonArray/add.cpp

@@ -9,7 +9,7 @@ using ArduinoJson::detail::sizeofArray;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("JsonArray::add()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
 
   SECTION("int") {
@@ -54,7 +54,7 @@ TEST_CASE("JsonArray::add()") {
 #endif
 
   SECTION("nested array") {
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonArray arr = doc2.to<JsonArray>();
 
     array.add(arr);
@@ -65,7 +65,7 @@ TEST_CASE("JsonArray::add()") {
   }
 
   SECTION("nested object") {
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonObject obj = doc2.to<JsonObject>();
 
     array.add(obj);
@@ -77,7 +77,7 @@ TEST_CASE("JsonArray::add()") {
 
   SECTION("array subscript") {
     const char* str = "hello";
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonArray arr = doc2.to<JsonArray>();
     arr.add(str);
 
@@ -88,7 +88,7 @@ TEST_CASE("JsonArray::add()") {
 
   SECTION("object subscript") {
     const char* str = "hello";
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonObject obj = doc2.to<JsonObject>();
     obj["x"] = str;
 

+ 1 - 1
extras/tests/JsonArray/clear.cpp

@@ -14,7 +14,7 @@ TEST_CASE("JsonArray::clear()") {
   }
 
   SECTION("Removes all elements") {
-    JsonDocument doc(64);
+    JsonDocument doc;
     JsonArray array = doc.to<JsonArray>();
     array.add(1);
     array.add(2);

+ 6 - 6
extras/tests/JsonArray/compare.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("Compare JsonArray with JsonArray") {
-  JsonDocument doc(256);
+  JsonDocument doc;
 
   SECTION("Compare with unbound") {
     JsonArray array = doc.to<JsonArray>();
@@ -82,7 +82,7 @@ TEST_CASE("Compare JsonArray with JsonArray") {
 }
 
 TEST_CASE("Compare JsonArray with JsonVariant") {
-  JsonDocument doc(256);
+  JsonDocument doc;
 
   SECTION("Compare with self") {
     JsonArray array = doc.to<JsonArray>();
@@ -153,7 +153,7 @@ TEST_CASE("Compare JsonArray with JsonVariant") {
 }
 
 TEST_CASE("Compare JsonArray with JsonVariantConst") {
-  JsonDocument doc(256);
+  JsonDocument doc;
 
   SECTION("Compare with unbound") {
     JsonArray array = doc.to<JsonArray>();
@@ -247,7 +247,7 @@ TEST_CASE("Compare JsonArray with JsonVariantConst") {
 }
 
 TEST_CASE("Compare JsonArray with JsonArrayConst") {
-  JsonDocument doc(256);
+  JsonDocument doc;
 
   SECTION("Compare with unbound") {
     JsonArray array = doc.to<JsonArray>();
@@ -347,7 +347,7 @@ TEST_CASE("Compare JsonArray with JsonArrayConst") {
 }
 
 TEST_CASE("Compare JsonArrayConst with JsonArrayConst") {
-  JsonDocument doc(256);
+  JsonDocument doc;
 
   SECTION("Compare with unbound") {
     JsonArray array = doc.to<JsonArray>();
@@ -430,7 +430,7 @@ TEST_CASE("Compare JsonArrayConst with JsonArrayConst") {
 }
 
 TEST_CASE("Compare JsonArrayConst with JsonVariant") {
-  JsonDocument doc(256);
+  JsonDocument doc;
 
   SECTION("Compare with self") {
     JsonArray array = doc.to<JsonArray>();

+ 23 - 25
extras/tests/JsonArray/copyArray.cpp

@@ -7,11 +7,9 @@
 
 #include "Allocators.hpp"
 
-using ArduinoJson::detail::sizeofArray;
-
 TEST_CASE("copyArray()") {
   SECTION("int[] -> JsonArray") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonArray array = doc.to<JsonArray>();
     char json[32];
     int source[] = {1, 2, 3};
@@ -24,7 +22,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("std::string[] -> JsonArray") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonArray array = doc.to<JsonArray>();
     char json[32];
     std::string source[] = {"a", "b", "c"};
@@ -37,7 +35,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("const char*[] -> JsonArray") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonArray array = doc.to<JsonArray>();
     char json[32];
     const char* source[] = {"a", "b", "c"};
@@ -50,7 +48,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("const char[][] -> JsonArray") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonArray array = doc.to<JsonArray>();
     char json[32];
     char source[][2] = {"a", "b", "c"};
@@ -63,7 +61,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("const char[][] -> JsonDocument") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[32];
     char source[][2] = {"a", "b", "c"};
 
@@ -75,7 +73,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("const char[][] -> MemberProxy") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[32];
     char source[][2] = {"a", "b", "c"};
 
@@ -87,7 +85,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("int[] -> JsonDocument") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[32];
     int source[] = {1, 2, 3};
 
@@ -99,7 +97,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("int[] -> MemberProxy") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[32];
     int source[] = {1, 2, 3};
 
@@ -111,7 +109,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("int[] -> JsonArray, but not enough memory") {
-    JsonDocument doc(0, FailingAllocator::instance());
+    JsonDocument doc(FailingAllocator::instance());
     JsonArray array = doc.to<JsonArray>();
     int source[] = {1, 2, 3};
 
@@ -120,7 +118,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("int[][] -> JsonArray") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonArray array = doc.to<JsonArray>();
     char json[32];
     int source[][3] = {{1, 2, 3}, {4, 5, 6}};
@@ -133,7 +131,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("int[][] -> MemberProxy") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[32];
     int source[][3] = {{1, 2, 3}, {4, 5, 6}};
 
@@ -145,7 +143,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("int[][] -> JsonDocument") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[32];
     int source[][3] = {{1, 2, 3}, {4, 5, 6}};
 
@@ -157,7 +155,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("int[][] -> JsonArray, but not enough memory") {
-    JsonDocument doc(0, FailingAllocator::instance());
+    JsonDocument doc(FailingAllocator::instance());
     JsonArray array = doc.to<JsonArray>();
     int source[][3] = {{1, 2, 3}, {4, 5, 6}};
 
@@ -166,7 +164,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("JsonArray -> int[], with more space than needed") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "[1,2,3]";
     DeserializationError err = deserializeJson(doc, json);
     CHECK(err == DeserializationError::Ok);
@@ -183,7 +181,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("JsonArray -> int[], without enough space") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "[1,2,3]";
     DeserializationError err = deserializeJson(doc, json);
     CHECK(err == DeserializationError::Ok);
@@ -198,7 +196,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("JsonArray -> std::string[]") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "[\"a\",\"b\",\"c\"]";
     DeserializationError err = deserializeJson(doc, json);
     CHECK(err == DeserializationError::Ok);
@@ -215,7 +213,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("JsonArray -> char[N][]") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "[\"a12345\",\"b123456\",\"c1234567\"]";
     DeserializationError err = deserializeJson(doc, json);
     CHECK(err == DeserializationError::Ok);
@@ -232,7 +230,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("JsonDocument -> int[]") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "[1,2,3]";
     DeserializationError err = deserializeJson(doc, json);
     CHECK(err == DeserializationError::Ok);
@@ -248,7 +246,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("MemberProxy -> int[]") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "{\"data\":[1,2,3]}";
     DeserializationError err = deserializeJson(doc, json);
     CHECK(err == DeserializationError::Ok);
@@ -264,7 +262,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("ElementProxy -> int[]") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "[[1,2,3]]";
     DeserializationError err = deserializeJson(doc, json);
     CHECK(err == DeserializationError::Ok);
@@ -280,7 +278,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("JsonArray -> int[][]") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "[[1,2],[3],[4]]";
 
     DeserializationError err = deserializeJson(doc, json);
@@ -299,7 +297,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("JsonDocument -> int[][]") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "[[1,2],[3],[4]]";
 
     DeserializationError err = deserializeJson(doc, json);
@@ -317,7 +315,7 @@ TEST_CASE("copyArray()") {
   }
 
   SECTION("MemberProxy -> int[][]") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     char json[] = "{\"data\":[[1,2],[3],[4]]}";
 
     DeserializationError err = deserializeJson(doc, json);

+ 1 - 1
extras/tests/JsonArray/createNested.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonArray basics") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
 
   SECTION("CreateNestedArray") {

+ 2 - 2
extras/tests/JsonArray/equals.cpp

@@ -6,11 +6,11 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonArray::operator==()") {
-  JsonDocument doc1(4096);
+  JsonDocument doc1;
   JsonArray array1 = doc1.to<JsonArray>();
   JsonArrayConst array1c = array1;
 
-  JsonDocument doc2(4096);
+  JsonDocument doc2;
   JsonArray array2 = doc2.to<JsonArray>();
   JsonArrayConst array2c = array2;
 

+ 4 - 4
extras/tests/JsonArray/isNull.cpp

@@ -12,7 +12,7 @@ TEST_CASE("JsonArray::isNull()") {
   }
 
   SECTION("returns false") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonArray arr = doc.to<JsonArray>();
     REQUIRE(arr.isNull() == false);
   }
@@ -25,7 +25,7 @@ TEST_CASE("JsonArrayConst::isNull()") {
   }
 
   SECTION("returns false") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonArrayConst arr = doc.to<JsonArray>();
     REQUIRE(arr.isNull() == false);
   }
@@ -38,7 +38,7 @@ TEST_CASE("JsonArray::operator bool()") {
   }
 
   SECTION("returns true") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonArray arr = doc.to<JsonArray>();
     REQUIRE(static_cast<bool>(arr) == true);
   }
@@ -51,7 +51,7 @@ TEST_CASE("JsonArrayConst::operator bool()") {
   }
 
   SECTION("returns true") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonArrayConst arr = doc.to<JsonArray>();
     REQUIRE(static_cast<bool>(arr) == true);
   }

+ 1 - 3
extras/tests/JsonArray/iterator.cpp

@@ -5,11 +5,9 @@
 #include <ArduinoJson.h>
 #include <catch.hpp>
 
-using ArduinoJson::detail::sizeofArray;
-
 template <typename TArray>
 static void run_iterator_test() {
-  JsonDocument doc(sizeofArray(2));
+  JsonDocument doc;
   JsonArray tmp = doc.to<JsonArray>();
   tmp.add(12);
   tmp.add(34);

+ 1 - 1
extras/tests/JsonArray/memoryUsage.cpp

@@ -10,7 +10,7 @@ using ArduinoJson::detail::sizeofObject;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("JsonArray::memoryUsage()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray arr = doc.to<JsonArray>();
 
   SECTION("return 0 if uninitialized") {

+ 1 - 1
extras/tests/JsonArray/nesting.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonArray::nesting()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray arr = doc.to<JsonArray>();
 
   SECTION("return 0 if uninitialized") {

+ 1 - 1
extras/tests/JsonArray/remove.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonArray::remove()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
   array.add(1);
   array.add(2);

+ 1 - 1
extras/tests/JsonArray/size.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonArray::size()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
 
   SECTION("returns 0 is empty") {

+ 1 - 1
extras/tests/JsonArray/std_string.cpp

@@ -12,7 +12,7 @@ static void eraseString(std::string& str) {
 }
 
 TEST_CASE("std::string") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
 
   SECTION("add()") {

+ 6 - 6
extras/tests/JsonArray/subscript.cpp

@@ -10,7 +10,7 @@ using ArduinoJson::detail::sizeofArray;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("JsonArray::operator[]") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
 
   SECTION("Pad with null") {
@@ -68,7 +68,7 @@ TEST_CASE("JsonArray::operator[]") {
   }
 
   SECTION("nested array") {
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonArray arr2 = doc2.to<JsonArray>();
 
     array[0] = arr2;
@@ -79,7 +79,7 @@ TEST_CASE("JsonArray::operator[]") {
   }
 
   SECTION("nested object") {
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonObject obj = doc2.to<JsonObject>();
 
     array[0] = obj;
@@ -90,7 +90,7 @@ TEST_CASE("JsonArray::operator[]") {
   }
 
   SECTION("array subscript") {
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonArray arr2 = doc2.to<JsonArray>();
     const char* str = "hello";
 
@@ -103,7 +103,7 @@ TEST_CASE("JsonArray::operator[]") {
 
   SECTION("object subscript") {
     const char* str = "hello";
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonObject obj = doc2.to<JsonObject>();
 
     obj["x"] = str;
@@ -162,7 +162,7 @@ TEST_CASE("JsonArray::operator[]") {
 }
 
 TEST_CASE("JsonArrayConst::operator[]") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
   array.add(0);
 

+ 2 - 3
extras/tests/JsonDeserializer/array.cpp

@@ -8,11 +8,10 @@
 #include "Allocators.hpp"
 
 using ArduinoJson::detail::sizeofArray;
-using ArduinoJson::detail::sizeofObject;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("deserialize JSON array") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("An empty array") {
     DeserializationError err = deserializeJson(doc, "[]");
@@ -260,7 +259,7 @@ TEST_CASE("deserialize JSON array") {
 
 TEST_CASE("deserialize JSON array under memory constraints") {
   TimebombAllocator allocator(100);
-  JsonDocument doc(0, &allocator);
+  JsonDocument doc(&allocator);
 
   SECTION("empty array requires no allocation") {
     allocator.setCountdown(0);

+ 6 - 6
extras/tests/JsonDeserializer/filter.cpp

@@ -689,8 +689,8 @@ TEST_CASE("Filtering") {
   for (size_t i = 0; i < sizeof(testCases) / sizeof(testCases[0]); i++) {
     CAPTURE(i);
 
-    JsonDocument filter(256);
-    JsonDocument doc(256);
+    JsonDocument filter;
+    JsonDocument doc;
     TestCase& tc = testCases[i];
 
     CAPTURE(tc.filter);
@@ -710,10 +710,10 @@ TEST_CASE("Filtering") {
 TEST_CASE("Zero-copy mode") {  // issue #1697
   char input[] = "{\"include\":42,\"exclude\":666}";
 
-  JsonDocument filter(256);
+  JsonDocument filter;
   filter["include"] = true;
 
-  JsonDocument doc(256);
+  JsonDocument doc;
   DeserializationError err =
       deserializeJson(doc, input, DeserializationOption::Filter(filter));
 
@@ -722,8 +722,8 @@ TEST_CASE("Zero-copy mode") {  // issue #1697
 }
 
 TEST_CASE("Overloads") {
-  JsonDocument doc(256);
-  JsonDocument filter(256);
+  JsonDocument doc;
+  JsonDocument filter;
 
   using namespace DeserializationOption;
 

+ 1 - 1
extras/tests/JsonDeserializer/incomplete_input.cpp

@@ -18,7 +18,7 @@ TEST_CASE("Truncated JSON input") {
                              "{", "{a", "{a:", "{a:1", "{a:1,", "{a:1,"};
   const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
 
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   for (size_t i = 0; i < testCount; i++) {
     const char* input = testCases[i];

+ 15 - 15
extras/tests/JsonDeserializer/input_types.cpp

@@ -13,7 +13,7 @@ using ArduinoJson::detail::sizeofObject;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("deserializeJson(char*)") {
-  JsonDocument doc(1024);
+  JsonDocument doc;
 
   char input[] = "{\"hello\":\"world\"}";
 
@@ -24,7 +24,7 @@ TEST_CASE("deserializeJson(char*)") {
 }
 
 TEST_CASE("deserializeJson(unsigned char*, unsigned int)") {  // issue #1897
-  JsonDocument doc(1024);
+  JsonDocument doc;
 
   unsigned char input[] = "{\"hello\":\"world\"}";
   unsigned char* input_ptr = input;
@@ -36,7 +36,7 @@ TEST_CASE("deserializeJson(unsigned char*, unsigned int)") {  // issue #1897
 }
 
 TEST_CASE("deserializeJson(uint8_t*, size_t)") {  // issue #1898
-  JsonDocument doc(1024);
+  JsonDocument doc;
 
   uint8_t input[] = "{\"hello\":\"world\"}";
   uint8_t* input_ptr = input;
@@ -48,7 +48,7 @@ TEST_CASE("deserializeJson(uint8_t*, size_t)") {  // issue #1898
 }
 
 TEST_CASE("deserializeJson(const std::string&)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("should accept const string") {
     const std::string input("[42]");
@@ -77,7 +77,7 @@ TEST_CASE("deserializeJson(const std::string&)") {
 }
 
 TEST_CASE("deserializeJson(std::istream&)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("array") {
     std::istringstream json(" [ 42 ] ");
@@ -148,7 +148,7 @@ TEST_CASE("deserializeJson(VLA)") {
   char vla[i];
   strcpy(vla, "{\"a\":42}");
 
-  JsonDocument doc(sizeofObject(1));
+  JsonDocument doc;
   DeserializationError err = deserializeJson(doc, vla);
 
   REQUIRE(err == DeserializationError::Ok);
@@ -156,7 +156,7 @@ TEST_CASE("deserializeJson(VLA)") {
 #endif
 
 TEST_CASE("deserializeJson(CustomReader)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   CustomReader reader("[4,2]");
   DeserializationError err = deserializeJson(doc, reader);
 
@@ -167,10 +167,10 @@ TEST_CASE("deserializeJson(CustomReader)") {
 }
 
 TEST_CASE("deserializeJson(JsonDocument&, MemberProxy)") {
-  JsonDocument doc1(4096);
+  JsonDocument doc1;
   doc1["payload"] = "[4,2]";
 
-  JsonDocument doc2(4096);
+  JsonDocument doc2;
   DeserializationError err = deserializeJson(doc2, doc1["payload"]);
 
   REQUIRE(err == DeserializationError::Ok);
@@ -180,10 +180,10 @@ TEST_CASE("deserializeJson(JsonDocument&, MemberProxy)") {
 }
 
 TEST_CASE("deserializeJson(JsonDocument&, JsonVariant)") {
-  JsonDocument doc1(4096);
+  JsonDocument doc1;
   doc1["payload"] = "[4,2]";
 
-  JsonDocument doc2(4096);
+  JsonDocument doc2;
   DeserializationError err =
       deserializeJson(doc2, doc1["payload"].as<JsonVariant>());
 
@@ -194,10 +194,10 @@ TEST_CASE("deserializeJson(JsonDocument&, JsonVariant)") {
 }
 
 TEST_CASE("deserializeJson(JsonDocument&, JsonVariantConst)") {
-  JsonDocument doc1(4096);
+  JsonDocument doc1;
   doc1["payload"] = "[4,2]";
 
-  JsonDocument doc2(4096);
+  JsonDocument doc2;
   DeserializationError err =
       deserializeJson(doc2, doc1["payload"].as<JsonVariantConst>());
 
@@ -208,10 +208,10 @@ TEST_CASE("deserializeJson(JsonDocument&, JsonVariantConst)") {
 }
 
 TEST_CASE("deserializeJson(JsonDocument&, ElementProxy)") {
-  JsonDocument doc1(4096);
+  JsonDocument doc1;
   doc1[0] = "[4,2]";
 
-  JsonDocument doc2(4096);
+  JsonDocument doc2;
   DeserializationError err = deserializeJson(doc2, doc1[0]);
 
   REQUIRE(err == DeserializationError::Ok);

+ 2 - 2
extras/tests/JsonDeserializer/invalid_input.cpp

@@ -13,7 +13,7 @@ TEST_CASE("Invalid JSON input") {
                              "3}"};
   const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
 
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   for (size_t i = 0; i < testCount; i++) {
     const char* input = testCases[i];
@@ -30,7 +30,7 @@ TEST_CASE("Invalid JSON input that should pass") {
   };
   const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
 
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   for (size_t i = 0; i < testCount; i++) {
     const char* input = testCases[i];

+ 1 - 1
extras/tests/JsonDeserializer/misc.cpp

@@ -10,7 +10,7 @@ using namespace Catch::Matchers;
 using ArduinoJson::detail::sizeofObject;
 
 TEST_CASE("deserializeJson(JsonDocument&)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("Edge cases") {
     SECTION("null char*") {

+ 1 - 1
extras/tests/JsonDeserializer/nestingLimit.cpp

@@ -12,7 +12,7 @@
   REQUIRE(DeserializationError::TooDeep == expression);
 
 TEST_CASE("JsonDeserializer nesting") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("Input = const char*") {
     SECTION("limit = 0") {

+ 1 - 1
extras/tests/JsonDeserializer/number.cpp

@@ -16,7 +16,7 @@ using ArduinoJson::detail::isnan;
 }  // namespace my
 
 TEST_CASE("deserialize an integer") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("Integer") {
     SECTION("0") {

+ 2 - 3
extras/tests/JsonDeserializer/object.cpp

@@ -7,12 +7,11 @@
 
 #include "Allocators.hpp"
 
-using ArduinoJson::detail::sizeofArray;
 using ArduinoJson::detail::sizeofObject;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("deserialize JSON object") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("An empty object") {
     DeserializationError err = deserializeJson(doc, "{}");
@@ -323,7 +322,7 @@ TEST_CASE("deserialize JSON object") {
 
 TEST_CASE("deserialize JSON object under memory constraints") {
   TimebombAllocator allocator(1024);
-  JsonDocument doc(0, &allocator);
+  JsonDocument doc(&allocator);
 
   SECTION("empty object requires no allocation") {
     allocator.setCountdown(0);

+ 8 - 8
extras/tests/JsonDeserializer/string.cpp

@@ -41,7 +41,7 @@ TEST_CASE("Valid JSON strings value") {
   };
   const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
 
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   for (size_t i = 0; i < testCount; i++) {
     const TestCase& testCase = testCases[i];
@@ -53,7 +53,7 @@ TEST_CASE("Valid JSON strings value") {
 }
 
 TEST_CASE("\\u0000") {
-  JsonDocument doc(200);
+  JsonDocument doc;
 
   DeserializationError err = deserializeJson(doc, "\"wx\\u0000yz\"");
   REQUIRE(err == DeserializationError::Ok);
@@ -74,7 +74,7 @@ TEST_CASE("Truncated JSON string") {
   const char* testCases[] = {"\"hello", "\'hello", "'\\u", "'\\u00", "'\\u000"};
   const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
 
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   for (size_t i = 0; i < testCount; i++) {
     const char* input = testCases[i];
@@ -89,7 +89,7 @@ TEST_CASE("Invalid JSON string") {
                              "'\\u000G'", "'\\u000/'", "'\\x1234'"};
   const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
 
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   for (size_t i = 0; i < testCount; i++) {
     const char* input = testCases[i];
@@ -101,7 +101,7 @@ TEST_CASE("Invalid JSON string") {
 TEST_CASE("Allocation of the key fails") {
   TimebombAllocator timebombAllocator(0);
   SpyingAllocator spyingAllocator(&timebombAllocator);
-  JsonDocument doc(1024, &spyingAllocator);
+  JsonDocument doc(&spyingAllocator);
 
   SECTION("Quoted string, first member") {
     REQUIRE(deserializeJson(doc, "{\"example\":1}") ==
@@ -146,7 +146,7 @@ TEST_CASE("Allocation of the key fails") {
 
 TEST_CASE("String allocation fails") {
   SpyingAllocator spyingAllocator(FailingAllocator::instance());
-  JsonDocument doc(0, &spyingAllocator);
+  JsonDocument doc(&spyingAllocator);
 
   SECTION("Input is const char*") {
     REQUIRE(deserializeJson(doc, "\"hello\"") ==
@@ -157,7 +157,7 @@ TEST_CASE("String allocation fails") {
 }
 
 TEST_CASE("Deduplicate values") {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   deserializeJson(doc, "[\"example\",\"example\"]");
 
   CHECK(doc.memoryUsage() == sizeofArray(2) + sizeofString(7));
@@ -165,7 +165,7 @@ TEST_CASE("Deduplicate values") {
 }
 
 TEST_CASE("Deduplicate keys") {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   deserializeJson(doc, "[{\"example\":1},{\"example\":2}]");
 
   CHECK(doc.memoryUsage() ==

+ 10 - 10
extras/tests/JsonDocument/ElementProxy.cpp

@@ -9,7 +9,7 @@ typedef ArduinoJson::detail::ElementProxy<JsonDocument&> ElementProxy;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("ElementProxy::add()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc.add();
   ElementProxy ep = doc[0];
 
@@ -35,7 +35,7 @@ TEST_CASE("ElementProxy::add()") {
 }
 
 TEST_CASE("ElementProxy::clear()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc.add();
   ElementProxy ep = doc[0];
 
@@ -55,7 +55,7 @@ TEST_CASE("ElementProxy::clear()") {
 }
 
 TEST_CASE("ElementProxy::operator==()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("1 vs 1") {
     doc.add(1);
@@ -95,7 +95,7 @@ TEST_CASE("ElementProxy::operator==()") {
 }
 
 TEST_CASE("ElementProxy::remove()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc.add();
   ElementProxy ep = doc[0];
 
@@ -143,7 +143,7 @@ TEST_CASE("ElementProxy::remove()") {
 }
 
 TEST_CASE("ElementProxy::set()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   ElementProxy ep = doc[0];
 
   SECTION("set(int)") {
@@ -168,7 +168,7 @@ TEST_CASE("ElementProxy::set()") {
 }
 
 TEST_CASE("ElementProxy::size()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc.add();
   ElementProxy ep = doc[0];
 
@@ -190,7 +190,7 @@ TEST_CASE("ElementProxy::size()") {
 }
 
 TEST_CASE("ElementProxy::memoryUsage()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc.add();
   ElementProxy ep = doc[0];
 
@@ -205,7 +205,7 @@ TEST_CASE("ElementProxy::memoryUsage()") {
 }
 
 TEST_CASE("ElementProxy::operator[]") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   ElementProxy ep = doc[1];
 
   SECTION("set member") {
@@ -222,7 +222,7 @@ TEST_CASE("ElementProxy::operator[]") {
 }
 
 TEST_CASE("ElementProxy cast to JsonVariantConst") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc[0] = "world";
 
   const ElementProxy ep = doc[0];
@@ -233,7 +233,7 @@ TEST_CASE("ElementProxy cast to JsonVariantConst") {
 }
 
 TEST_CASE("ElementProxy cast to JsonVariant") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc[0] = "world";
 
   ElementProxy ep = doc[0];

+ 19 - 19
extras/tests/JsonDocument/MemberProxy.cpp

@@ -18,7 +18,7 @@ typedef ArduinoJson::detail::MemberProxy<JsonDocument&, const char*>
     MemberProxy;
 
 TEST_CASE("MemberProxy::add()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   MemberProxy mp = doc["hello"];
 
   SECTION("add(int)") {
@@ -35,7 +35,7 @@ TEST_CASE("MemberProxy::add()") {
 }
 
 TEST_CASE("MemberProxy::clear()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   MemberProxy mp = doc["hello"];
 
   SECTION("size goes back to zero") {
@@ -54,7 +54,7 @@ TEST_CASE("MemberProxy::clear()") {
 }
 
 TEST_CASE("MemberProxy::operator==()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("1 vs 1") {
     doc["a"] = 1;
@@ -94,7 +94,7 @@ TEST_CASE("MemberProxy::operator==()") {
 }
 
 TEST_CASE("MemberProxy::containsKey()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   MemberProxy mp = doc["hello"];
 
   SECTION("containsKey(const char*)") {
@@ -113,7 +113,7 @@ TEST_CASE("MemberProxy::containsKey()") {
 }
 
 TEST_CASE("MemberProxy::operator|()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("const char*") {
     doc["a"] = "hello";
@@ -136,7 +136,7 @@ TEST_CASE("MemberProxy::operator|()") {
     JsonObject object = doc.to<JsonObject>();
     object["hello"] = "world";
 
-    JsonDocument emptyDoc(0);
+    JsonDocument emptyDoc;
     JsonObject anotherObject = object["hello"] | emptyDoc.to<JsonObject>();
 
     REQUIRE(anotherObject.isNull() == false);
@@ -145,7 +145,7 @@ TEST_CASE("MemberProxy::operator|()") {
 }
 
 TEST_CASE("MemberProxy::remove()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   MemberProxy mp = doc["hello"];
 
   SECTION("remove(int)") {
@@ -192,7 +192,7 @@ TEST_CASE("MemberProxy::remove()") {
 }
 
 TEST_CASE("MemberProxy::set()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   MemberProxy mp = doc["hello"];
 
   SECTION("set(int)") {
@@ -217,7 +217,7 @@ TEST_CASE("MemberProxy::set()") {
 }
 
 TEST_CASE("MemberProxy::size()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   MemberProxy mp = doc["hello"];
 
   SECTION("returns 0") {
@@ -240,7 +240,7 @@ TEST_CASE("MemberProxy::size()") {
 }
 
 TEST_CASE("MemberProxy::memoryUsage()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   MemberProxy mp = doc["hello"];
 
   SECTION("returns 0 when null") {
@@ -254,7 +254,7 @@ TEST_CASE("MemberProxy::memoryUsage()") {
 }
 
 TEST_CASE("MemberProxy::operator[]") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   MemberProxy mp = doc["hello"];
 
   SECTION("set member") {
@@ -271,7 +271,7 @@ TEST_CASE("MemberProxy::operator[]") {
 }
 
 TEST_CASE("MemberProxy cast to JsonVariantConst") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc["hello"] = "world";
 
   const MemberProxy mp = doc["hello"];
@@ -282,7 +282,7 @@ TEST_CASE("MemberProxy cast to JsonVariantConst") {
 }
 
 TEST_CASE("MemberProxy cast to JsonVariant") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc["hello"] = "world";
 
   MemberProxy mp = doc["hello"];
@@ -297,7 +297,7 @@ TEST_CASE("MemberProxy cast to JsonVariant") {
 }
 
 TEST_CASE("MemberProxy::createNestedArray()") {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   JsonArray arr = doc["items"].createNestedArray();
   arr.add(42);
 
@@ -305,7 +305,7 @@ TEST_CASE("MemberProxy::createNestedArray()") {
 }
 
 TEST_CASE("MemberProxy::createNestedArray(key)") {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   JsonArray arr = doc["weather"].createNestedArray("temp");
   arr.add(42);
 
@@ -313,7 +313,7 @@ TEST_CASE("MemberProxy::createNestedArray(key)") {
 }
 
 TEST_CASE("MemberProxy::createNestedObject()") {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   JsonObject obj = doc["items"].createNestedObject();
   obj["value"] = 42;
 
@@ -321,7 +321,7 @@ TEST_CASE("MemberProxy::createNestedObject()") {
 }
 
 TEST_CASE("MemberProxy::createNestedObject(key)") {
-  JsonDocument doc(1024);
+  JsonDocument doc;
   JsonObject obj = doc["status"].createNestedObject("weather");
   obj["temp"] = 42;
 
@@ -329,7 +329,7 @@ TEST_CASE("MemberProxy::createNestedObject(key)") {
 }
 
 TEST_CASE("Deduplicate keys") {
-  JsonDocument doc(1024);
+  JsonDocument doc;
 
   SECTION("std::string") {
     doc[0][std::string("example")] = 1;
@@ -383,7 +383,7 @@ TEST_CASE("Deduplicate keys") {
 
 TEST_CASE("MemberProxy under memory constraints") {
   ControllableAllocator allocator;
-  JsonDocument doc(4096, &allocator);
+  JsonDocument doc(&allocator);
 
   SECTION("key allocation fails") {
     allocator.disable();

+ 1 - 1
extras/tests/JsonDocument/add.cpp

@@ -12,7 +12,7 @@ using ArduinoJson::detail::sizeofArray;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("JsonDocument::add()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("integer") {
     doc.add(42);

+ 18 - 22
extras/tests/JsonDocument/assignment.cpp

@@ -7,17 +7,15 @@
 
 #include "Allocators.hpp"
 
-using ArduinoJson::detail::sizeofArray;
-using ArduinoJson::detail::sizeofObject;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("JsonDocument assignment") {
   SpyingAllocator spyingAllocator;
 
   SECTION("Copy assignment same capacity") {
-    JsonDocument doc1(1024, &spyingAllocator);
+    JsonDocument doc1(&spyingAllocator);
     deserializeJson(doc1, "{\"hello\":\"world\"}");
-    JsonDocument doc2(1024, &spyingAllocator);
+    JsonDocument doc2(&spyingAllocator);
     spyingAllocator.clearLog();
 
     doc2 = doc1;
@@ -33,10 +31,9 @@ TEST_CASE("JsonDocument assignment") {
   }
 
   SECTION("Copy assignment reallocates when capacity is smaller") {
-    const size_t capacity = 100 * sizeof(ArduinoJson::detail::VariantSlot);
-    JsonDocument doc1(capacity, &spyingAllocator);
+    JsonDocument doc1(&spyingAllocator);
     deserializeJson(doc1, "[{\"hello\":\"world\"}]");
-    JsonDocument doc2(sizeofArray(1), &spyingAllocator);
+    JsonDocument doc2(&spyingAllocator);
     spyingAllocator.clearLog();
 
     doc2 = doc1;
@@ -51,10 +48,9 @@ TEST_CASE("JsonDocument assignment") {
   }
 
   SECTION("Copy assignment reallocates when capacity is larger") {
-    const size_t capacity1 = 100 * sizeof(ArduinoJson::detail::VariantSlot);
-    JsonDocument doc1(capacity1, &spyingAllocator);
+    JsonDocument doc1(&spyingAllocator);
     deserializeJson(doc1, "{\"hello\":\"world\"}");
-    JsonDocument doc2(4096, &spyingAllocator);
+    JsonDocument doc2(&spyingAllocator);
     spyingAllocator.clearLog();
 
     doc2 = doc1;
@@ -70,9 +66,9 @@ TEST_CASE("JsonDocument assignment") {
 
   SECTION("Move assign") {
     {
-      JsonDocument doc1(4096, &spyingAllocator);
+      JsonDocument doc1(&spyingAllocator);
       doc1[std::string("hello")] = std::string("world");
-      JsonDocument doc2(128, &spyingAllocator);
+      JsonDocument doc2(&spyingAllocator);
 
       doc2 = std::move(doc1);
 
@@ -92,52 +88,52 @@ TEST_CASE("JsonDocument assignment") {
   }
 
   SECTION("Assign from JsonObject") {
-    JsonDocument doc1(200);
+    JsonDocument doc1;
     JsonObject obj = doc1.to<JsonObject>();
     obj["hello"] = "world";
 
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     doc2 = obj;
 
     REQUIRE(doc2.as<std::string>() == "{\"hello\":\"world\"}");
   }
 
   SECTION("Assign from JsonArray") {
-    JsonDocument doc1(200);
+    JsonDocument doc1;
     JsonArray arr = doc1.to<JsonArray>();
     arr.add("hello");
 
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     doc2 = arr;
 
     REQUIRE(doc2.as<std::string>() == "[\"hello\"]");
   }
 
   SECTION("Assign from JsonVariant") {
-    JsonDocument doc1(200);
+    JsonDocument doc1;
     deserializeJson(doc1, "42");
 
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     doc2 = doc1.as<JsonVariant>();
 
     REQUIRE(doc2.as<std::string>() == "42");
   }
 
   SECTION("Assign from MemberProxy") {
-    JsonDocument doc1(200);
+    JsonDocument doc1;
     doc1["value"] = 42;
 
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     doc2 = doc1["value"];
 
     REQUIRE(doc2.as<std::string>() == "42");
   }
 
   SECTION("Assign from ElementProxy") {
-    JsonDocument doc1(200);
+    JsonDocument doc1;
     doc1[0] = 42;
 
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     doc2 = doc1[0];
 
     REQUIRE(doc2.as<std::string>() == "42");

+ 1 - 1
extras/tests/JsonDocument/cast.cpp

@@ -8,7 +8,7 @@
 #include <string>
 
 TEST_CASE("Implicit cast to JsonVariant") {
-  JsonDocument doc(128);
+  JsonDocument doc;
 
   doc["hello"] = "world";
 

+ 2 - 2
extras/tests/JsonDocument/compare.cpp

@@ -6,8 +6,8 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonDocument::operator==(const JsonDocument&)") {
-  JsonDocument doc1(4096);
-  JsonDocument doc2(4096);
+  JsonDocument doc1;
+  JsonDocument doc2;
 
   SECTION("Empty") {
     REQUIRE(doc1 == doc2);

+ 6 - 8
extras/tests/JsonDocument/constructor.cpp

@@ -8,21 +8,19 @@
 #include "Allocators.hpp"
 
 using ArduinoJson::detail::addPadding;
-using ArduinoJson::detail::sizeofObject;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("JsonDocument constructor") {
   SpyingAllocator spyingAllocator;
 
   SECTION("JsonDocument(size_t)") {
-    { JsonDocument doc(4096, &spyingAllocator); }
+    { JsonDocument doc(&spyingAllocator); }
     REQUIRE(spyingAllocator.log() == AllocatorLog());
   }
 
   SECTION("JsonDocument(const JsonDocument&)") {
-    const size_t capacity = 100 * sizeof(ArduinoJson::detail::VariantSlot);
     {
-      JsonDocument doc1(capacity, &spyingAllocator);
+      JsonDocument doc1(&spyingAllocator);
       doc1.set(std::string("The size of this string is 32!!"));
 
       JsonDocument doc2(doc1);
@@ -39,7 +37,7 @@ TEST_CASE("JsonDocument constructor") {
 
   SECTION("JsonDocument(JsonDocument&&)") {
     {
-      JsonDocument doc1(4096, &spyingAllocator);
+      JsonDocument doc1(&spyingAllocator);
       doc1.set(std::string("The size of this string is 32!!"));
 
       JsonDocument doc2(std::move(doc1));
@@ -53,7 +51,7 @@ TEST_CASE("JsonDocument constructor") {
   }
 
   SECTION("JsonDocument(JsonObject)") {
-    JsonDocument doc1(200);
+    JsonDocument doc1;
     JsonObject obj = doc1.to<JsonObject>();
     obj["hello"] = "world";
 
@@ -66,7 +64,7 @@ TEST_CASE("JsonDocument constructor") {
   }
 
   SECTION("Construct from JsonArray") {
-    JsonDocument doc1(200);
+    JsonDocument doc1;
     JsonArray arr = doc1.to<JsonArray>();
     arr.add("hello");
 
@@ -79,7 +77,7 @@ TEST_CASE("JsonDocument constructor") {
   }
 
   SECTION("Construct from JsonVariant") {
-    JsonDocument doc1(200);
+    JsonDocument doc1;
     deserializeJson(doc1, "\"hello\"");
 
     JsonDocument doc2(doc1.as<JsonVariant>(), &spyingAllocator);

+ 1 - 1
extras/tests/JsonDocument/containsKey.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonDocument::containsKey()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("returns true on object") {
     doc["hello"] = "world";

+ 4 - 4
extras/tests/JsonDocument/createNested.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonDocument::createNestedArray()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("promotes to array") {
     doc.createNestedArray();
@@ -16,7 +16,7 @@ TEST_CASE("JsonDocument::createNestedArray()") {
 }
 
 TEST_CASE("JsonDocument::createNestedArray(key)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("key is const char*") {
     SECTION("promotes to object") {
@@ -36,7 +36,7 @@ TEST_CASE("JsonDocument::createNestedArray(key)") {
 }
 
 TEST_CASE("JsonDocument::createNestedObject()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("promotes to array") {
     doc.createNestedObject();
@@ -46,7 +46,7 @@ TEST_CASE("JsonDocument::createNestedObject()") {
 }
 
 TEST_CASE("JsonDocument::createNestedObject(key)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("key is const char*") {
     SECTION("promotes to object") {

+ 1 - 2
extras/tests/JsonDocument/garbageCollect.cpp

@@ -13,10 +13,9 @@ using ArduinoJson::detail::sizeofObject;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("JsonDocument::garbageCollect()") {
-  const size_t capacity = 100 * sizeof(ArduinoJson::detail::VariantSlot);
   ControllableAllocator controllableAllocator;
   SpyingAllocator spyingAllocator(&controllableAllocator);
-  JsonDocument doc(capacity, &spyingAllocator);
+  JsonDocument doc(&spyingAllocator);
 
   SECTION("when allocation succeeds") {
     deserializeJson(doc, "{\"blanket\":1,\"dancing\":2}");

+ 1 - 1
extras/tests/JsonDocument/isNull.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonDocument::isNull()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("returns true if uninitialized") {
     REQUIRE(doc.isNull() == true);

+ 1 - 1
extras/tests/JsonDocument/issue1120.cpp

@@ -3,7 +3,7 @@
 #include <catch.hpp>
 
 TEST_CASE("Issue #1120") {
-  JsonDocument doc(500);
+  JsonDocument doc;
   constexpr char str[] =
       "{\"contents\":[{\"module\":\"Packet\"},{\"module\":\"Analog\"}]}";
   deserializeJson(doc, str);

+ 1 - 1
extras/tests/JsonDocument/memoryUsage.cpp

@@ -9,7 +9,7 @@ using ArduinoJson::detail::sizeofArray;
 using ArduinoJson::detail::sizeofObject;
 
 TEST_CASE("JsonDocument::memoryUsage()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("starts at zero") {
     REQUIRE(doc.memoryUsage() == 0);

+ 1 - 1
extras/tests/JsonDocument/nesting.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonDocument::nesting()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("return 0 if uninitialized") {
     REQUIRE(doc.nesting() == 0);

+ 1 - 3
extras/tests/JsonDocument/overflowed.cpp

@@ -7,11 +7,9 @@
 
 #include "Allocators.hpp"
 
-using ArduinoJson::detail::sizeofArray;
-
 TEST_CASE("JsonDocument::overflowed()") {
   TimebombAllocator allocator(10);
-  JsonDocument doc(0, &allocator);
+  JsonDocument doc(&allocator);
 
   SECTION("returns false on a fresh object") {
     allocator.setCountdown(0);

+ 1 - 1
extras/tests/JsonDocument/remove.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonDocument::remove()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("remove(int)") {
     doc.add(1);

+ 1 - 1
extras/tests/JsonDocument/shrinkToFit.cpp

@@ -42,7 +42,7 @@ class ArmoredAllocator : public Allocator {
 TEST_CASE("JsonDocument::shrinkToFit()") {
   ArmoredAllocator armoredAllocator;
   SpyingAllocator spyingAllocator(&armoredAllocator);
-  JsonDocument doc(4096, &spyingAllocator);
+  JsonDocument doc(&spyingAllocator);
 
   SECTION("null") {
     doc.shrinkToFit();

+ 1 - 1
extras/tests/JsonDocument/size.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonDocument::size()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("returns 0") {
     REQUIRE(doc.size() == 0);

+ 3 - 3
extras/tests/JsonDocument/subscript.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonDocument::operator[]") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   const JsonDocument& cdoc = doc;
 
   SECTION("object") {
@@ -37,7 +37,7 @@ TEST_CASE("JsonDocument::operator[]") {
 }
 
 TEST_CASE("JsonDocument automatically promotes to object") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   doc["one"]["two"]["three"] = 4;
 
@@ -45,7 +45,7 @@ TEST_CASE("JsonDocument automatically promotes to object") {
 }
 
 TEST_CASE("JsonDocument automatically promotes to array") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   doc[2] = 2;
 

+ 1 - 1
extras/tests/JsonDocument/swap.cpp

@@ -13,7 +13,7 @@ TEST_CASE("std::swap") {
   }
 
   SECTION("JsonDocument") {
-    JsonDocument doc1(0x10), doc2(0x20);
+    JsonDocument doc1, doc2;
     doc1.set("hello");
     doc2.set("world");
 

+ 1 - 1
extras/tests/JsonObject/clear.cpp

@@ -14,7 +14,7 @@ TEST_CASE("JsonObject::clear()") {
   }
 
   SECTION("Removes all elements") {
-    JsonDocument doc(64);
+    JsonDocument doc;
     JsonObject obj = doc.to<JsonObject>();
     obj["hello"] = 1;
     obj["world"] = 2;

+ 6 - 6
extras/tests/JsonObject/compare.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("Compare JsonObject with JsonObject") {
-  JsonDocument doc(512);
+  JsonDocument doc;
 
   SECTION("Compare with unbound") {
     JsonObject object = doc.to<JsonObject>();
@@ -82,7 +82,7 @@ TEST_CASE("Compare JsonObject with JsonObject") {
 }
 
 TEST_CASE("Compare JsonObject with JsonVariant") {
-  JsonDocument doc(512);
+  JsonDocument doc;
 
   SECTION("Compare with self") {
     JsonObject object = doc.to<JsonObject>();
@@ -153,7 +153,7 @@ TEST_CASE("Compare JsonObject with JsonVariant") {
 }
 
 TEST_CASE("Compare JsonObject with JsonVariantConst") {
-  JsonDocument doc(512);
+  JsonDocument doc;
 
   SECTION("Compare with unbound") {
     JsonObject object = doc.to<JsonObject>();
@@ -247,7 +247,7 @@ TEST_CASE("Compare JsonObject with JsonVariantConst") {
 }
 
 TEST_CASE("Compare JsonObject with JsonObjectConst") {
-  JsonDocument doc(512);
+  JsonDocument doc;
 
   SECTION("Compare with unbound") {
     JsonObject object = doc.to<JsonObject>();
@@ -347,7 +347,7 @@ TEST_CASE("Compare JsonObject with JsonObjectConst") {
 }
 
 TEST_CASE("Compare JsonObjectConst with JsonObjectConst") {
-  JsonDocument doc(512);
+  JsonDocument doc;
 
   SECTION("Compare with unbound") {
     JsonObject object = doc.to<JsonObject>();
@@ -430,7 +430,7 @@ TEST_CASE("Compare JsonObjectConst with JsonObjectConst") {
 }
 
 TEST_CASE("Compare JsonObjectConst with JsonVariant") {
-  JsonDocument doc(512);
+  JsonDocument doc;
 
   SECTION("Compare with self") {
     JsonObject object = doc.to<JsonObject>();

+ 1 - 1
extras/tests/JsonObject/containsKey.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonObject::containsKey()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
   obj["hello"] = 42;
 

+ 4 - 6
extras/tests/JsonObject/copy.cpp

@@ -7,11 +7,9 @@
 
 #include "Allocators.hpp"
 
-using ArduinoJson::detail::sizeofObject;
-
 TEST_CASE("JsonObject::set()") {
-  JsonDocument doc1(4096);
-  JsonDocument doc2(4096);
+  JsonDocument doc1;
+  JsonDocument doc2;
 
   JsonObject obj1 = doc1.to<JsonObject>();
   JsonObject obj2 = doc2.to<JsonObject>();
@@ -77,7 +75,7 @@ TEST_CASE("JsonObject::set()") {
 
   SECTION("copy fails in the middle of an object") {
     TimebombAllocator allocator(3);
-    JsonDocument doc3(0, &allocator);
+    JsonDocument doc3(&allocator);
     JsonObject obj3 = doc3.to<JsonObject>();
 
     obj1[std::string("a")] = 1;
@@ -91,7 +89,7 @@ TEST_CASE("JsonObject::set()") {
 
   SECTION("copy fails in the middle of an array") {
     TimebombAllocator allocator(2);
-    JsonDocument doc3(0, &allocator);
+    JsonDocument doc3(&allocator);
     JsonObject obj3 = doc3.to<JsonObject>();
 
     obj1["hello"][0] = std::string("world");

+ 1 - 1
extras/tests/JsonObject/createNestedArray.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonObject::createNestedArray()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
 
   SECTION("key is a const char*") {

+ 1 - 1
extras/tests/JsonObject/createNestedObject.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonObject::createNestedObject()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
 
   SECTION("key is a const char*") {

+ 2 - 2
extras/tests/JsonObject/equals.cpp

@@ -6,11 +6,11 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonObject::operator==()") {
-  JsonDocument doc1(4096);
+  JsonDocument doc1;
   JsonObject obj1 = doc1.to<JsonObject>();
   JsonObjectConst obj1c = obj1;
 
-  JsonDocument doc2(4096);
+  JsonDocument doc2;
   JsonObject obj2 = doc2.to<JsonObject>();
   JsonObjectConst obj2c = obj2;
 

+ 4 - 4
extras/tests/JsonObject/isNull.cpp

@@ -12,7 +12,7 @@ TEST_CASE("JsonObject::isNull()") {
   }
 
   SECTION("returns false") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonObject obj = doc.to<JsonObject>();
     REQUIRE(obj.isNull() == false);
   }
@@ -25,7 +25,7 @@ TEST_CASE("JsonObjectConst::isNull()") {
   }
 
   SECTION("returns false") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonObjectConst obj = doc.to<JsonObject>();
     REQUIRE(obj.isNull() == false);
   }
@@ -38,7 +38,7 @@ TEST_CASE("JsonObject::operator bool()") {
   }
 
   SECTION("returns true") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonObject obj = doc.to<JsonObject>();
     REQUIRE(static_cast<bool>(obj) == true);
   }
@@ -51,7 +51,7 @@ TEST_CASE("JsonObjectConst::operator bool()") {
   }
 
   SECTION("returns true") {
-    JsonDocument doc(4096);
+    JsonDocument doc;
     JsonObjectConst obj = doc.to<JsonObject>();
     REQUIRE(static_cast<bool>(obj) == true);
   }

+ 2 - 3
extras/tests/JsonObject/iterator.cpp

@@ -6,10 +6,9 @@
 #include <catch.hpp>
 
 using namespace Catch::Matchers;
-using ArduinoJson::detail::sizeofObject;
 
 TEST_CASE("JsonObject::begin()/end()") {
-  JsonDocument doc(sizeofObject(2));
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
   obj["ab"] = 12;
   obj["cd"] = 34;
@@ -39,7 +38,7 @@ TEST_CASE("JsonObject::begin()/end()") {
 }
 
 TEST_CASE("JsonObjectConst::begin()/end()") {
-  JsonDocument doc(sizeofObject(2));
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
   obj["ab"] = 12;
   obj["cd"] = 34;

+ 1 - 1
extras/tests/JsonObject/memoryUsage.cpp

@@ -11,7 +11,7 @@ using ArduinoJson::detail::sizeofObject;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("JsonObject::memoryUsage()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
 
   SECTION("return 0 if uninitialized") {

+ 1 - 1
extras/tests/JsonObject/nesting.cpp

@@ -6,7 +6,7 @@
 #include <catch.hpp>
 
 TEST_CASE("JsonObject::nesting()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
 
   SECTION("return 0 if uninitialized") {

+ 1 - 1
extras/tests/JsonObject/remove.cpp

@@ -7,7 +7,7 @@
 #include <string>
 
 TEST_CASE("JsonObject::remove()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
   obj["a"] = 0;
   obj["b"] = 1;

+ 1 - 1
extras/tests/JsonObject/size.cpp

@@ -7,7 +7,7 @@
 #include <string>
 
 TEST_CASE("JsonObject::size()") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
 
   SECTION("initial size is zero") {

+ 1 - 1
extras/tests/JsonObject/std_string.cpp

@@ -12,7 +12,7 @@ static void eraseString(std::string& str) {
 }
 
 TEST_CASE("std::string") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
 
   SECTION("operator[]") {
     char json[] = "{\"key\":\"value\"}";

+ 5 - 5
extras/tests/JsonObject/subscript.cpp

@@ -9,7 +9,7 @@ using ArduinoJson::detail::sizeofObject;
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("JsonObject::operator[]") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
 
   SECTION("int") {
@@ -54,7 +54,7 @@ TEST_CASE("JsonObject::operator[]") {
   }
 
   SECTION("array") {
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonArray arr = doc2.to<JsonArray>();
 
     obj["hello"] = arr;
@@ -65,7 +65,7 @@ TEST_CASE("JsonObject::operator[]") {
   }
 
   SECTION("object") {
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonObject obj2 = doc2.to<JsonObject>();
 
     obj["hello"] = obj2;
@@ -76,7 +76,7 @@ TEST_CASE("JsonObject::operator[]") {
   }
 
   SECTION("array subscript") {
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonArray arr = doc2.to<JsonArray>();
     arr.add(42);
 
@@ -86,7 +86,7 @@ TEST_CASE("JsonObject::operator[]") {
   }
 
   SECTION("object subscript") {
-    JsonDocument doc2(4096);
+    JsonDocument doc2;
     JsonObject obj2 = doc2.to<JsonObject>();
     obj2["x"] = 42;
 

+ 1 - 1
extras/tests/JsonSerializer/CustomWriter.cpp

@@ -30,7 +30,7 @@ class CustomWriter {
 };
 
 TEST_CASE("CustomWriter") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
   array.add(4);
   array.add(2);

+ 1 - 3
extras/tests/JsonSerializer/JsonArray.cpp

@@ -5,8 +5,6 @@
 #include <ArduinoJson.h>
 #include <catch.hpp>
 
-using ArduinoJson::detail::sizeofArray;
-
 static void check(JsonArray array, std::string expected) {
   std::string actual;
   size_t actualLen = serializeJson(array, actual);
@@ -17,7 +15,7 @@ static void check(JsonArray array, std::string expected) {
 }
 
 TEST_CASE("serializeJson(JsonArray)") {
-  JsonDocument doc(sizeofArray(2));
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
 
   SECTION("Empty") {

+ 1 - 1
extras/tests/JsonSerializer/JsonArrayPretty.cpp

@@ -15,7 +15,7 @@ static void checkArray(JsonArray array, std::string expected) {
 }
 
 TEST_CASE("serializeJsonPretty(JsonArray)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
 
   SECTION("Empty") {

+ 5 - 5
extras/tests/JsonSerializer/JsonObject.cpp

@@ -20,7 +20,7 @@ static void checkObject(const JsonObject obj, const std::string& expected) {
 }
 
 TEST_CASE("serializeJson(JsonObject)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
 
   SECTION("EmptyObject") {
@@ -96,8 +96,8 @@ TEST_CASE("serializeJson(JsonObject)") {
   }
 
   SECTION("ThreeNestedArrays") {
-    JsonDocument b(4096);
-    JsonDocument c(4096);
+    JsonDocument b;
+    JsonDocument c;
 
     obj.createNestedArray("a");
     obj["b"] = b.to<JsonArray>();
@@ -107,8 +107,8 @@ TEST_CASE("serializeJson(JsonObject)") {
   }
 
   SECTION("ThreeNestedObjects") {
-    JsonDocument b(4096);
-    JsonDocument c(4096);
+    JsonDocument b;
+    JsonDocument c;
 
     obj.createNestedObject("a");
     obj["b"] = b.to<JsonObject>();

+ 1 - 1
extras/tests/JsonSerializer/JsonObjectPretty.cpp

@@ -19,7 +19,7 @@ static void checkObjectPretty(const JsonObject obj,
 }
 
 TEST_CASE("serializeJsonPretty(JsonObject)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
 
   SECTION("EmptyObject") {

+ 1 - 1
extras/tests/JsonSerializer/JsonVariant.cpp

@@ -8,7 +8,7 @@
 
 template <typename T>
 void check(T value, const std::string& expected) {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   doc.to<JsonVariant>().set(value);
   char buffer[256] = "";
   size_t returnValue = serializeJson(doc, buffer, sizeof(buffer));

+ 3 - 3
extras/tests/JsonSerializer/misc.cpp

@@ -3,7 +3,7 @@
 #include <limits>
 
 TEST_CASE("serializeJson(MemberProxy)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   deserializeJson(doc, "{\"hello\":42}");
   JsonObject obj = doc.as<JsonObject>();
   std::string result;
@@ -14,7 +14,7 @@ TEST_CASE("serializeJson(MemberProxy)") {
 }
 
 TEST_CASE("serializeJson(ElementProxy)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   deserializeJson(doc, "[42]");
   JsonArray arr = doc.as<JsonArray>();
   std::string result;
@@ -25,7 +25,7 @@ TEST_CASE("serializeJson(ElementProxy)") {
 }
 
 TEST_CASE("serializeJson(JsonVariantSubscript)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   deserializeJson(doc, "[42]");
   JsonVariant var = doc.as<JsonVariant>();
   std::string result;

+ 1 - 1
extras/tests/JsonSerializer/std_stream.cpp

@@ -7,7 +7,7 @@
 #include <sstream>
 
 TEST_CASE("operator<<(std::ostream)") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   std::ostringstream os;
 
   SECTION("JsonVariant containing false") {

+ 3 - 3
extras/tests/JsonSerializer/std_string.cpp

@@ -8,7 +8,7 @@
 using ArduinoJson::detail::sizeofString;
 
 TEST_CASE("serialize JsonArray to std::string") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonArray array = doc.to<JsonArray>();
   array.add(4);
   array.add(2);
@@ -29,7 +29,7 @@ TEST_CASE("serialize JsonArray to std::string") {
 }
 
 TEST_CASE("serialize JsonObject to std::string") {
-  JsonDocument doc(4096);
+  JsonDocument doc;
   JsonObject obj = doc.to<JsonObject>();
   obj["key"] = "value";
 
@@ -49,7 +49,7 @@ TEST_CASE("serialize JsonObject to std::string") {
 }
 
 TEST_CASE("serialize an std::string containing a NUL") {
-  JsonDocument doc(256);
+  JsonDocument doc;
   doc.set(std::string("hello\0world", 11));
   CHECK(doc.memoryUsage() == sizeofString(11));
 

部分文件因文件數量過多而無法顯示