Update to ArduinoJson 7.0.4

This commit is contained in:
iranl
2024-04-19 14:44:01 +02:00
parent 1378732081
commit 81be0a689a
444 changed files with 10842 additions and 9422 deletions

View File

@@ -1,13 +1,15 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// Copyright © 2014-2024, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
#include <catch.hpp>
#include "Allocators.hpp"
TEST_CASE("copyArray()") {
SECTION("int[] -> JsonArray") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
char json[32];
int source[] = {1, 2, 3};
@@ -20,7 +22,7 @@ TEST_CASE("copyArray()") {
}
SECTION("std::string[] -> JsonArray") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
char json[32];
std::string source[] = {"a", "b", "c"};
@@ -33,7 +35,7 @@ TEST_CASE("copyArray()") {
}
SECTION("const char*[] -> JsonArray") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
char json[32];
const char* source[] = {"a", "b", "c"};
@@ -46,7 +48,7 @@ TEST_CASE("copyArray()") {
}
SECTION("const char[][] -> JsonArray") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
char json[32];
char source[][2] = {"a", "b", "c"};
@@ -59,7 +61,7 @@ TEST_CASE("copyArray()") {
}
SECTION("const char[][] -> JsonDocument") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[32];
char source[][2] = {"a", "b", "c"};
@@ -71,7 +73,7 @@ TEST_CASE("copyArray()") {
}
SECTION("const char[][] -> MemberProxy") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[32];
char source[][2] = {"a", "b", "c"};
@@ -83,7 +85,7 @@ TEST_CASE("copyArray()") {
}
SECTION("int[] -> JsonDocument") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[32];
int source[] = {1, 2, 3};
@@ -95,7 +97,7 @@ TEST_CASE("copyArray()") {
}
SECTION("int[] -> MemberProxy") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[32];
int source[] = {1, 2, 3};
@@ -107,21 +109,16 @@ TEST_CASE("copyArray()") {
}
SECTION("int[] -> JsonArray, but not enough memory") {
const size_t SIZE = JSON_ARRAY_SIZE(2);
StaticJsonDocument<SIZE> doc;
JsonDocument doc(FailingAllocator::instance());
JsonArray array = doc.to<JsonArray>();
char json[32];
int source[] = {1, 2, 3};
bool ok = copyArray(source, array);
REQUIRE_FALSE(ok);
serializeJson(array, json);
CHECK(std::string("[1,2]") == json);
}
SECTION("int[][] -> JsonArray") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
char json[32];
int source[][3] = {{1, 2, 3}, {4, 5, 6}};
@@ -134,7 +131,7 @@ TEST_CASE("copyArray()") {
}
SECTION("int[][] -> MemberProxy") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[32];
int source[][3] = {{1, 2, 3}, {4, 5, 6}};
@@ -146,7 +143,7 @@ TEST_CASE("copyArray()") {
}
SECTION("int[][] -> JsonDocument") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[32];
int source[][3] = {{1, 2, 3}, {4, 5, 6}};
@@ -158,25 +155,16 @@ TEST_CASE("copyArray()") {
}
SECTION("int[][] -> JsonArray, but not enough memory") {
const size_t SIZE =
JSON_ARRAY_SIZE(2) + JSON_ARRAY_SIZE(3) + JSON_ARRAY_SIZE(2);
StaticJsonDocument<SIZE> doc;
JsonDocument doc(FailingAllocator::instance());
JsonArray array = doc.to<JsonArray>();
char json[32] = "";
int source[][3] = {{1, 2, 3}, {4, 5, 6}};
CAPTURE(SIZE);
bool ok = copyArray(source, array);
CAPTURE(doc.memoryUsage());
CHECK_FALSE(ok);
serializeJson(array, json);
CHECK(std::string("[[1,2,3],[4,5]]") == json);
REQUIRE(ok == false);
}
SECTION("JsonArray -> int[], with more space than needed") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "[1,2,3]";
DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok);
@@ -193,7 +181,7 @@ TEST_CASE("copyArray()") {
}
SECTION("JsonArray -> int[], without enough space") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "[1,2,3]";
DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok);
@@ -208,7 +196,7 @@ TEST_CASE("copyArray()") {
}
SECTION("JsonArray -> std::string[]") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "[\"a\",\"b\",\"c\"]";
DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok);
@@ -225,7 +213,7 @@ TEST_CASE("copyArray()") {
}
SECTION("JsonArray -> char[N][]") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "[\"a12345\",\"b123456\",\"c1234567\"]";
DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok);
@@ -242,7 +230,7 @@ TEST_CASE("copyArray()") {
}
SECTION("JsonDocument -> int[]") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "[1,2,3]";
DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok);
@@ -258,7 +246,7 @@ TEST_CASE("copyArray()") {
}
SECTION("MemberProxy -> int[]") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "{\"data\":[1,2,3]}";
DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok);
@@ -274,7 +262,7 @@ TEST_CASE("copyArray()") {
}
SECTION("ElementProxy -> int[]") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "[[1,2,3]]";
DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok);
@@ -290,7 +278,7 @@ TEST_CASE("copyArray()") {
}
SECTION("JsonArray -> int[][]") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "[[1,2],[3],[4]]";
DeserializationError err = deserializeJson(doc, json);
@@ -309,7 +297,7 @@ TEST_CASE("copyArray()") {
}
SECTION("JsonDocument -> int[][]") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "[[1,2],[3],[4]]";
DeserializationError err = deserializeJson(doc, json);
@@ -327,7 +315,7 @@ TEST_CASE("copyArray()") {
}
SECTION("MemberProxy -> int[][]") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
char json[] = "{\"data\":[[1,2],[3],[4]]}";
DeserializationError err = deserializeJson(doc, json);