use_long_long_0.cpp 969 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #define ARDUINOJSON_USE_LONG_LONG 0
  2. #include <ArduinoJson.h>
  3. #include <catch.hpp>
  4. #include "Literals.hpp"
  5. TEST_CASE("ARDUINOJSON_USE_LONG_LONG == 0") {
  6. JsonDocument doc;
  7. SECTION("smoke test") {
  8. doc["A"] = 42;
  9. doc["B"] = 84;
  10. std::string json;
  11. serializeJson(doc, json);
  12. REQUIRE(json == "{\"A\":42,\"B\":84}");
  13. }
  14. SECTION("deserializeMsgPack()") {
  15. SECTION("cf 00 00 00 00 ff ff ff ff") {
  16. auto err =
  17. deserializeMsgPack(doc, "\xcf\x00\x00\x00\x00\xff\xff\xff\xff"_s);
  18. REQUIRE(err == DeserializationError::Ok);
  19. REQUIRE(doc.as<uint32_t>() == 0xFFFFFFFF);
  20. }
  21. SECTION("cf 00 00 00 01 00 00 00 00") {
  22. auto err =
  23. deserializeMsgPack(doc, "\xcf\x00\x00\x00\x01\x00\x00\x00\x00"_s);
  24. REQUIRE(err == DeserializationError::Ok);
  25. #if defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ >= 8
  26. REQUIRE(doc.as<JsonInteger>() == 0x100000000);
  27. #else
  28. REQUIRE(doc.isNull());
  29. #endif
  30. }
  31. }
  32. }