mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-16 03:52:16 +02:00
JsonArray::remove() and JsonObject::remove() now release the memory of strings
This commit is contained in:
41
test/DynamicMemoryPool/allocVariant.cpp
Normal file
41
test/DynamicMemoryPool/allocVariant.cpp
Normal file
@ -0,0 +1,41 @@
|
||||
// ArduinoJson - arduinojson.org
|
||||
// Copyright Benoit Blanchon 2014-2018
|
||||
// MIT License
|
||||
|
||||
#include <ArduinoJson/Memory/DynamicMemoryPool.hpp>
|
||||
#include <catch.hpp>
|
||||
|
||||
using namespace ARDUINOJSON_NAMESPACE;
|
||||
|
||||
TEST_CASE("DynamicMemoryPool::allocVariant()") {
|
||||
DynamicMemoryPool memoryPool;
|
||||
|
||||
SECTION("Returns different pointer") {
|
||||
VariantSlot* s1 = memoryPool.allocVariant();
|
||||
VariantSlot* s2 = memoryPool.allocVariant();
|
||||
|
||||
REQUIRE(s1 != s2);
|
||||
}
|
||||
|
||||
SECTION("Returns same pointer after freeSlot()") {
|
||||
VariantSlot* s1 = memoryPool.allocVariant();
|
||||
memoryPool.freeVariant(s1);
|
||||
VariantSlot* s2 = memoryPool.allocVariant();
|
||||
|
||||
REQUIRE(s1 == s2);
|
||||
}
|
||||
|
||||
SECTION("Returns aligned pointers") {
|
||||
// make room for two but not three
|
||||
// pass an uneven capacity
|
||||
DynamicMemoryPool pool(2 * sizeof(VariantSlot) + 1);
|
||||
|
||||
REQUIRE(isAligned(pool.allocVariant()));
|
||||
REQUIRE(isAligned(pool.allocVariant()));
|
||||
REQUIRE(pool.blockCount() == 1);
|
||||
|
||||
REQUIRE(isAligned(pool.allocVariant()));
|
||||
REQUIRE(isAligned(pool.allocVariant()));
|
||||
REQUIRE(pool.blockCount() == 2);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user