to.cpp 705 B

1234567891011121314151617181920212223242526272829303132
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2018
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <stdint.h>
  6. #include <catch.hpp>
  7. static const char* null = 0;
  8. TEST_CASE("JsonVariant::to<T>() releases string memory") {
  9. DynamicJsonDocument doc;
  10. JsonVariant variant = doc.to<JsonVariant>();
  11. variant.set(std::string("hello"));
  12. REQUIRE(doc.memoryUsage() == JSON_STRING_SIZE(6));
  13. SECTION("JsonVariant") {
  14. variant.to<JsonVariant>();
  15. REQUIRE(doc.memoryUsage() == 0);
  16. }
  17. SECTION("JsonArray") {
  18. variant.to<JsonArray>();
  19. REQUIRE(doc.memoryUsage() == 0);
  20. }
  21. SECTION("JsonObject") {
  22. variant.to<JsonObject>();
  23. REQUIRE(doc.memoryUsage() == 0);
  24. }
  25. }