Преглед изворни кода

Fixed failing test with clang

Benoit Blanchon пре 11 година
родитељ
комит
a5dbb397ca
2 измењених фајлова са 27 додато и 28 уклоњено
  1. 5 7
      include/ArduinoJson/StaticJsonBuffer.hpp
  2. 22 21
      test/StaticJsonBufferTests.cpp

+ 5 - 7
include/ArduinoJson/StaticJsonBuffer.hpp

@@ -10,17 +10,15 @@
 #include "JsonBuffer.hpp"
 #include "JsonBuffer.hpp"
 
 
 namespace ArduinoJson {
 namespace ArduinoJson {
-template <int CAPACITY>
+
+template <size_t CAPACITY>
 class StaticJsonBuffer : public JsonBuffer {
 class StaticJsonBuffer : public JsonBuffer {
  public:
  public:
   explicit StaticJsonBuffer() : _size(0) {}
   explicit StaticJsonBuffer() : _size(0) {}
-
   virtual ~StaticJsonBuffer() {}
   virtual ~StaticJsonBuffer() {}
 
 
-  int capacity() const { return CAPACITY; }
-
-  int size() const { return _size; }
-
+  size_t capacity() const { return CAPACITY; }
+  size_t size() const { return _size; }
   void clear() { _size = 0; }
   void clear() { _size = 0; }
 
 
  protected:
  protected:
@@ -33,6 +31,6 @@ class StaticJsonBuffer : public JsonBuffer {
 
 
  private:
  private:
   char _buffer[CAPACITY];
   char _buffer[CAPACITY];
-  int _size;
+  size_t _size;
 };
 };
 }
 }

+ 22 - 21
test/StaticJsonBufferTests.cpp

@@ -11,68 +11,69 @@
 
 
 using namespace ArduinoJson;
 using namespace ArduinoJson;
 
 
+const size_t SIZEOF_ONE_OBJECT = JSON_OBJECT_SIZE(0);
+const size_t SIZEOF_TWO_OBJECTS = 2 * SIZEOF_ONE_OBJECT;
+const size_t SIZEOF_OBJECT_WITH_ONE_VALUE = JSON_OBJECT_SIZE(1);
+const size_t SIZEOF_OBJECT_WITH_TWO_VALUES = JSON_OBJECT_SIZE(2);
+
 TEST(StaticJsonBuffer, CapacityMatchTemplateParameter) {
 TEST(StaticJsonBuffer, CapacityMatchTemplateParameter) {
   StaticJsonBuffer<42> json;
   StaticJsonBuffer<42> json;
+
   EXPECT_EQ(42, json.capacity());
   EXPECT_EQ(42, json.capacity());
 }
 }
 
 
 TEST(StaticJsonBuffer, InitialSizeIsZero) {
 TEST(StaticJsonBuffer, InitialSizeIsZero) {
   StaticJsonBuffer<42> json;
   StaticJsonBuffer<42> json;
+
   EXPECT_EQ(0, json.size());
   EXPECT_EQ(0, json.size());
 }
 }
 
 
-TEST(StaticJsonBuffer, WhenCreateObjectIsCalled_ThenSizeIsIncreasedSizeOfJsonObject) {
-  StaticJsonBuffer<42> json;
+TEST(StaticJsonBuffer,
+     WhenCreateObjectIsCalled_ThenSizeIsIncreasedSizeOfJsonObject) {
+  StaticJsonBuffer<SIZEOF_TWO_OBJECTS> json;
 
 
   json.createObject();
   json.createObject();
-  EXPECT_EQ(sizeof(JsonObject), json.size());
-
   json.createObject();
   json.createObject();
-  EXPECT_EQ(sizeof(JsonObject)*2, json.size());
+  EXPECT_EQ(SIZEOF_TWO_OBJECTS, json.size());
 }
 }
 
 
 TEST(StaticJsonBuffer,
 TEST(StaticJsonBuffer,
      GivenBufferIsFull_WhenCreateObjectIsCalled_ThenSizeDoesNotChange) {
      GivenBufferIsFull_WhenCreateObjectIsCalled_ThenSizeDoesNotChange) {
-  StaticJsonBuffer<sizeof(JsonObject)> json;
+  StaticJsonBuffer<SIZEOF_ONE_OBJECT> json;
 
 
   json.createObject();
   json.createObject();
-  EXPECT_EQ(sizeof(JsonObject), json.size());
-
   json.createObject();
   json.createObject();
-  EXPECT_EQ(sizeof(JsonObject), json.size());
+  EXPECT_EQ(SIZEOF_ONE_OBJECT, json.size());
 }
 }
 
 
 TEST(StaticJsonBuffer,
 TEST(StaticJsonBuffer,
      WhenCreateObjectIsCalled_ThenAnEmptyJsonObjectIsReturned) {
      WhenCreateObjectIsCalled_ThenAnEmptyJsonObjectIsReturned) {
-  StaticJsonBuffer<42> json;
+  StaticJsonBuffer<SIZEOF_ONE_OBJECT> json;
 
 
   JsonObject &obj = json.createObject();
   JsonObject &obj = json.createObject();
+
   EXPECT_EQ(0, obj.size());
   EXPECT_EQ(0, obj.size());
 }
 }
 
 
 TEST(StaticJsonBuffer,
 TEST(StaticJsonBuffer,
      GivenAJsonObject_WhenValuesAreAdded_ThenSizeIsIncreasedAccordingly) {
      GivenAJsonObject_WhenValuesAreAdded_ThenSizeIsIncreasedAccordingly) {
-  StaticJsonBuffer<200> json;
-  JsonObject &obj = json.createObject();
+  StaticJsonBuffer<SIZEOF_OBJECT_WITH_TWO_VALUES> json;
 
 
+  JsonObject &obj = json.createObject();
   obj["hello"];
   obj["hello"];
-  EXPECT_EQ(sizeof(JsonObject)+sizeof(Internals::JsonObjectNode), json.size());
-
   obj["world"];
   obj["world"];
-  EXPECT_EQ(sizeof(JsonObject) + sizeof(Internals::JsonObjectNode)*2, json.size());
+
+  EXPECT_EQ(SIZEOF_OBJECT_WITH_TWO_VALUES, json.size());
 }
 }
 
 
 TEST(
 TEST(
     StaticJsonBuffer,
     StaticJsonBuffer,
     GivenAJsonObject_WhenSameValuesAreAddedTwice_ThenSizeIsOnlyIncreasedByTwo) {
     GivenAJsonObject_WhenSameValuesAreAddedTwice_ThenSizeIsOnlyIncreasedByTwo) {
-  StaticJsonBuffer<42> json;
-  JsonObject &obj = json.createObject();
+  StaticJsonBuffer<SIZEOF_OBJECT_WITH_TWO_VALUES> json;
 
 
+  JsonObject &obj = json.createObject();
   obj["hello"];
   obj["hello"];
-
-  size_t sizeBefore = json.size();
   obj["hello"];
   obj["hello"];
-  size_t sizeAfter = json.size();
 
 
-  EXPECT_EQ(sizeBefore, sizeAfter);
+  EXPECT_EQ(SIZEOF_OBJECT_WITH_ONE_VALUE, json.size());
 }
 }