clear.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2018
  3. // MIT License
  4. #include <ArduinoJson/Memory/DynamicMemoryPool.hpp>
  5. #include <catch.hpp>
  6. using namespace ARDUINOJSON_NAMESPACE;
  7. TEST_CASE("StaticMemoryPool::clear()") {
  8. DynamicMemoryPool memoryPool;
  9. SECTION("Discards allocated variants") {
  10. memoryPool.allocVariant();
  11. REQUIRE(memoryPool.size() > 0);
  12. memoryPool.clear();
  13. CHECK(memoryPool.size() == 0);
  14. }
  15. SECTION("Discards allocated strings") {
  16. memoryPool.allocFrozenString(10);
  17. REQUIRE(memoryPool.size() > 0);
  18. memoryPool.clear();
  19. CHECK(memoryPool.size() == 0);
  20. }
  21. SECTION("Purges variant cache") {
  22. memoryPool.freeVariant(memoryPool.allocVariant());
  23. REQUIRE(memoryPool.size() == 0);
  24. memoryPool.clear();
  25. CHECK(memoryPool.size() == 0);
  26. }
  27. SECTION("Purges string cache") {
  28. memoryPool.freeString(memoryPool.allocFrozenString(10));
  29. // REQUIRE(memoryPool.size() == 0);
  30. memoryPool.clear();
  31. CHECK(memoryPool.size() == 0);
  32. }
  33. }