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,5 +1,5 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2023, Benoit BLANCHON
# Copyright © 2014-2024, Benoit BLANCHON
# MIT License
add_executable(JsonSerializerTests

View File

@@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// Copyright © 2014-2024, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
@@ -12,25 +12,25 @@ class CustomWriter {
CustomWriter& operator=(const CustomWriter&) = delete;
size_t write(uint8_t c) {
_str.append(1, static_cast<char>(c));
str_.append(1, static_cast<char>(c));
return 1;
}
size_t write(const uint8_t* s, size_t n) {
_str.append(reinterpret_cast<const char*>(s), n);
str_.append(reinterpret_cast<const char*>(s), n);
return n;
}
const std::string& str() const {
return _str;
return str_;
}
private:
std::string _str;
std::string str_;
};
TEST_CASE("CustomWriter") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
array.add(4);
array.add(2);

View File

@@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// Copyright © 2014-2024, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
@@ -15,7 +15,7 @@ static void check(JsonArray array, std::string expected) {
}
TEST_CASE("serializeJson(JsonArray)") {
StaticJsonDocument<JSON_ARRAY_SIZE(2)> doc;
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
SECTION("Empty") {
@@ -41,14 +41,6 @@ TEST_CASE("serializeJson(JsonArray)") {
check(array, "[\"hello\",\"world\"]");
}
SECTION("OneStringOverCapacity") {
array.add("hello");
array.add("world");
array.add("lost");
check(array, "[\"hello\",\"world\"]");
}
SECTION("One double") {
array.add(3.1415927);
check(array, "[3.1415927]");
@@ -80,14 +72,6 @@ TEST_CASE("serializeJson(JsonArray)") {
check(array, "[{\"key\":\"value\"}]");
}
SECTION("OneIntegerOverCapacity") {
array.add(1);
array.add(2);
array.add(3);
check(array, "[1,2]");
}
SECTION("OneTrue") {
array.add(true);
@@ -107,22 +91,14 @@ TEST_CASE("serializeJson(JsonArray)") {
check(array, "[false,true]");
}
SECTION("OneBooleanOverCapacity") {
array.add(false);
array.add(true);
array.add(false);
check(array, "[false,true]");
}
SECTION("OneEmptyNestedArray") {
array.createNestedArray();
array.add<JsonArray>();
check(array, "[[]]");
}
SECTION("OneEmptyNestedHash") {
array.createNestedObject();
array.add<JsonObject>();
check(array, "[{}]");
}

View File

@@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// Copyright © 2014-2024, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
@@ -15,7 +15,7 @@ static void checkArray(JsonArray array, std::string expected) {
}
TEST_CASE("serializeJsonPretty(JsonArray)") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
SECTION("Empty") {
@@ -43,8 +43,8 @@ TEST_CASE("serializeJsonPretty(JsonArray)") {
}
SECTION("EmptyNestedArrays") {
array.createNestedArray();
array.createNestedArray();
array.add<JsonArray>();
array.add<JsonArray>();
checkArray(array,
"[\r\n"
@@ -54,11 +54,11 @@ TEST_CASE("serializeJsonPretty(JsonArray)") {
}
SECTION("NestedArrays") {
JsonArray nested1 = array.createNestedArray();
JsonArray nested1 = array.add<JsonArray>();
nested1.add(1);
nested1.add(2);
JsonObject nested2 = array.createNestedObject();
JsonObject nested2 = array.add<JsonObject>();
nested2["key"] = 3;
checkArray(array,

View File

@@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// Copyright © 2014-2024, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
@@ -20,7 +20,7 @@ static void checkObject(const JsonObject obj, const std::string& expected) {
}
TEST_CASE("serializeJson(JsonObject)") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonObject obj = doc.to<JsonObject>();
SECTION("EmptyObject") {
@@ -96,10 +96,10 @@ TEST_CASE("serializeJson(JsonObject)") {
}
SECTION("ThreeNestedArrays") {
DynamicJsonDocument b(4096);
DynamicJsonDocument c(4096);
JsonDocument b;
JsonDocument c;
obj.createNestedArray("a");
obj["a"].to<JsonArray>();
obj["b"] = b.to<JsonArray>();
obj["c"] = c.to<JsonArray>();
@@ -107,10 +107,10 @@ TEST_CASE("serializeJson(JsonObject)") {
}
SECTION("ThreeNestedObjects") {
DynamicJsonDocument b(4096);
DynamicJsonDocument c(4096);
JsonDocument b;
JsonDocument c;
obj.createNestedObject("a");
obj["a"].to<JsonObject>();
obj["b"] = b.to<JsonObject>();
obj["c"] = c.to<JsonObject>();

View File

@@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// Copyright © 2014-2024, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
@@ -19,7 +19,7 @@ static void checkObjectPretty(const JsonObject obj,
}
TEST_CASE("serializeJsonPretty(JsonObject)") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonObject obj = doc.to<JsonObject>();
SECTION("EmptyObject") {
@@ -47,8 +47,8 @@ TEST_CASE("serializeJsonPretty(JsonObject)") {
}
SECTION("EmptyNestedContainers") {
obj.createNestedObject("key1");
obj.createNestedArray("key2");
obj["key1"].to<JsonObject>();
obj["key2"].to<JsonArray>();
checkObjectPretty(obj,
"{\r\n"
@@ -58,10 +58,10 @@ TEST_CASE("serializeJsonPretty(JsonObject)") {
}
SECTION("NestedContainers") {
JsonObject nested1 = obj.createNestedObject("key1");
JsonObject nested1 = obj["key1"].to<JsonObject>();
nested1["a"] = 1;
JsonArray nested2 = obj.createNestedArray("key2");
JsonArray nested2 = obj["key2"].to<JsonArray>();
nested2.add(2);
checkObjectPretty(obj,

View File

@@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// Copyright © 2014-2024, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
@@ -8,7 +8,7 @@
template <typename T>
void check(T value, const std::string& expected) {
DynamicJsonDocument doc(4096);
JsonDocument doc;
doc.to<JsonVariant>().set(value);
char buffer[256] = "";
size_t returnValue = serializeJson(doc, buffer, sizeof(buffer));

View File

@@ -3,7 +3,7 @@
#include <limits>
TEST_CASE("serializeJson(MemberProxy)") {
DynamicJsonDocument 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)") {
DynamicJsonDocument 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)") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
deserializeJson(doc, "[42]");
JsonVariant var = doc.as<JsonVariant>();
std::string result;

View File

@@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// Copyright © 2014-2024, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
@@ -7,7 +7,7 @@
#include <sstream>
TEST_CASE("operator<<(std::ostream)") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
std::ostringstream os;
SECTION("JsonVariant containing false") {

View File

@@ -1,25 +1,25 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// Copyright © 2014-2024, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
#include <catch.hpp>
TEST_CASE("serialize JsonArray to std::string") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
array.add(4);
array.add(2);
SECTION("serializeJson()") {
std::string json;
std::string json = "erase me";
serializeJson(array, json);
REQUIRE("[4,2]" == json);
}
SECTION("serializeJsonPretty") {
std::string json;
std::string json = "erase me";
serializeJsonPretty(array, json);
REQUIRE("[\r\n 4,\r\n 2\r\n]" == json);
@@ -27,19 +27,19 @@ TEST_CASE("serialize JsonArray to std::string") {
}
TEST_CASE("serialize JsonObject to std::string") {
DynamicJsonDocument doc(4096);
JsonDocument doc;
JsonObject obj = doc.to<JsonObject>();
obj["key"] = "value";
SECTION("object") {
std::string json;
std::string json = "erase me";
serializeJson(doc, json);
REQUIRE("{\"key\":\"value\"}" == json);
}
SECTION("serializeJsonPretty") {
std::string json;
std::string json = "erase me";
serializeJsonPretty(doc, json);
REQUIRE("{\r\n \"key\": \"value\"\r\n}" == json);
@@ -47,11 +47,10 @@ TEST_CASE("serialize JsonObject to std::string") {
}
TEST_CASE("serialize an std::string containing a NUL") {
StaticJsonDocument<256> doc;
JsonDocument doc;
doc.set(std::string("hello\0world", 11));
CHECK(doc.memoryUsage() == 12);
std::string json;
std::string json = "erase me";
serializeJson(doc, json);
CHECK("\"hello\\u0000world\"" == json);
}