StaticJsonBuffer_Basic_Tests.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Copyright Benoit Blanchon 2014-2016
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. // If you like this project, please add a star!
  7. #include <gtest/gtest.h>
  8. #define protected public
  9. #include <ArduinoJson/StaticJsonBuffer.hpp>
  10. using namespace ArduinoJson;
  11. class StaticJsonBuffer_Basic_Tests : public testing::Test {
  12. protected:
  13. StaticJsonBuffer<64> buffer;
  14. };
  15. TEST_F(StaticJsonBuffer_Basic_Tests, CapacityMatchTemplateParameter) {
  16. ASSERT_EQ(64, buffer.capacity());
  17. }
  18. TEST_F(StaticJsonBuffer_Basic_Tests, InitialSizeIsZero) {
  19. ASSERT_EQ(0, buffer.size());
  20. }
  21. TEST_F(StaticJsonBuffer_Basic_Tests, GrowsAfterAlloc) {
  22. buffer.alloc(1);
  23. ASSERT_LE(1U, buffer.size());
  24. buffer.alloc(1);
  25. ASSERT_LE(2U, buffer.size());
  26. }
  27. TEST_F(StaticJsonBuffer_Basic_Tests, DoesntGrowWhenFull) {
  28. buffer.alloc(64);
  29. buffer.alloc(1);
  30. ASSERT_EQ(64, buffer.size());
  31. }
  32. TEST_F(StaticJsonBuffer_Basic_Tests, DoesntGrowWhenTooSmall) {
  33. buffer.alloc(65);
  34. ASSERT_EQ(0, buffer.size());
  35. }
  36. TEST_F(StaticJsonBuffer_Basic_Tests, ReturnsNonNull) {
  37. void *p = buffer.alloc(64);
  38. ASSERT_NE(static_cast<void *>(0), p);
  39. }
  40. TEST_F(StaticJsonBuffer_Basic_Tests, ReturnsNullWhenFull) {
  41. buffer.alloc(64);
  42. void *p = buffer.alloc(1);
  43. ASSERT_EQ(NULL, p);
  44. }
  45. TEST_F(StaticJsonBuffer_Basic_Tests, ReturnsNullWhenTooSmall) {
  46. void *p = buffer.alloc(65);
  47. ASSERT_EQ(NULL, p);
  48. }
  49. TEST_F(StaticJsonBuffer_Basic_Tests, Alignment) {
  50. size_t mask = sizeof(void *) - 1;
  51. for (size_t size = 1; size <= sizeof(void *); size++) {
  52. size_t addr = reinterpret_cast<size_t>(buffer.alloc(1));
  53. ASSERT_EQ(0, addr & mask);
  54. }
  55. }