Remove capacity from JsonDocument's constructor

This commit is contained in:
Benoit Blanchon
2023-07-17 18:15:13 +02:00
parent 42b2840009
commit 0f319e7ca4
162 changed files with 438 additions and 500 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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];

View File

@ -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);

View File

@ -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];

View File

@ -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*") {

View File

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

View File

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

View File

@ -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);

View File

@ -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() ==