Update to ArduinoJson 7.0.4
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# ArduinoJson - https://arduinojson.org
|
||||
# Copyright © 2014-2023, Benoit BLANCHON
|
||||
# Copyright © 2014-2024, Benoit BLANCHON
|
||||
# MIT License
|
||||
|
||||
add_executable(JsonSerializerTests
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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, "[{}]");
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>();
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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") {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user