enable_alignment_0.cpp 1010 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #define ARDUINOJSON_VERSION_NAMESPACE NoAlignment
  2. #define ARDUINOJSON_ENABLE_ALIGNMENT 0
  3. #include <ArduinoJson.h>
  4. #include <ArduinoJson/Memory/Alignment.hpp>
  5. #include <catch.hpp>
  6. TEST_CASE("ARDUINOJSON_ENABLE_ALIGNMENT == 0") {
  7. using namespace ArduinoJson::detail;
  8. const size_t N = sizeof(void*);
  9. SECTION("isAligned()") {
  10. CHECK(isAligned(0) == true);
  11. CHECK(isAligned(1) == true);
  12. CHECK(isAligned(N) == true);
  13. CHECK(isAligned(N + 1) == true);
  14. CHECK(isAligned(2 * N) == true);
  15. CHECK(isAligned(2 * N + 1) == true);
  16. }
  17. SECTION("addPadding()") {
  18. CHECK(addPadding(0) == 0);
  19. CHECK(addPadding(1) == 1);
  20. CHECK(addPadding(N) == N);
  21. CHECK(addPadding(N + 1) == N + 1);
  22. }
  23. SECTION("AddPadding<>") {
  24. const size_t a = AddPadding<0>::value;
  25. CHECK(a == 0);
  26. const size_t b = AddPadding<1>::value;
  27. CHECK(b == 1);
  28. const size_t c = AddPadding<N>::value;
  29. CHECK(c == N);
  30. const size_t d = AddPadding<N + 1>::value;
  31. CHECK(d == N + 1);
  32. }
  33. }