forked from bblanchon/ArduinoJson
Restored the monotonic allocator
This commit is contained in:
@ -22,17 +22,4 @@ TEST_CASE("JsonObject::createNestedObject()") {
|
||||
obj.createNestedObject(vla);
|
||||
}
|
||||
#endif
|
||||
|
||||
SECTION("releases memory from nested object") {
|
||||
obj.createNestedObject(std::string("a"))
|
||||
.createNestedObject(std::string("b"))
|
||||
.set(std::string("c"))
|
||||
.set(1);
|
||||
// {"a":{"b":{"c":1}}}
|
||||
REQUIRE(doc.memoryUsage() ==
|
||||
3 * JSON_OBJECT_SIZE(1) + 3 * JSON_STRING_SIZE(2));
|
||||
|
||||
obj.createNestedObject(std::string("a"));
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(1) + JSON_STRING_SIZE(2));
|
||||
}
|
||||
}
|
||||
|
@ -19,47 +19,18 @@ TEST_CASE("JsonObject::remove()") {
|
||||
obj.remove("a");
|
||||
serializeJson(obj, result);
|
||||
REQUIRE("{\"b\":1,\"c\":2}" == result);
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(2));
|
||||
}
|
||||
|
||||
SECTION("Remove middle") {
|
||||
obj.remove("b");
|
||||
serializeJson(obj, result);
|
||||
REQUIRE("{\"a\":0,\"c\":2}" == result);
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(2));
|
||||
}
|
||||
|
||||
SECTION("Remove last") {
|
||||
obj.remove("c");
|
||||
serializeJson(obj, result);
|
||||
REQUIRE("{\"a\":0,\"b\":1}" == result);
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(2));
|
||||
}
|
||||
|
||||
SECTION("Release value string memory") {
|
||||
obj["c"] = std::string("Copy me!");
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(3) + JSON_STRING_SIZE(9));
|
||||
|
||||
obj.remove("c");
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(2));
|
||||
}
|
||||
|
||||
SECTION("Release key string memory") {
|
||||
obj[std::string("Copy me!")] = 42;
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(4) + JSON_STRING_SIZE(9));
|
||||
|
||||
obj.remove("Copy me!");
|
||||
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(3));
|
||||
}
|
||||
|
||||
SECTION("Release raw string memory") {
|
||||
obj["c"] = serialized(std::string("Copy me!"));
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(3) + JSON_STRING_SIZE(8));
|
||||
|
||||
obj.remove("c");
|
||||
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(2));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -141,22 +141,6 @@ TEST_CASE("JsonObject::operator[]") {
|
||||
REQUIRE(expectedSize <= doc.memoryUsage());
|
||||
}
|
||||
|
||||
SECTION("should release string memory when overiding value") {
|
||||
obj["hello"] = std::string("world");
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(1) + JSON_STRING_SIZE(6));
|
||||
|
||||
obj["hello"] = 42;
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(1));
|
||||
}
|
||||
|
||||
SECTION("should release nested array memory when overiding value") {
|
||||
obj.createNestedArray("hello").add("world");
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(1) + JSON_ARRAY_SIZE(1));
|
||||
|
||||
obj["hello"] = 42;
|
||||
REQUIRE(doc.memoryUsage() == JSON_OBJECT_SIZE(1));
|
||||
}
|
||||
|
||||
SECTION("should ignore null key") {
|
||||
// object must have a value to make a call to strcmp()
|
||||
obj["dummy"] = 42;
|
||||
|
Reference in New Issue
Block a user