Просмотр исходного кода

Test that DynamicJsonBuffer returns a different pointer after each alloc()

Benoit Blanchon 11 лет назад
Родитель
Сommit
ada588c112
2 измененных файлов с 11 добавлено и 1 удалено
  1. 5 1
      include/ArduinoJson/DynamicJsonBuffer.hpp
  2. 6 0
      test/DynamicJsonBuffer_Basic_Tests.cpp

+ 5 - 1
include/ArduinoJson/DynamicJsonBuffer.hpp

@@ -21,10 +21,14 @@ class DynamicJsonBuffer : public JsonBuffer {
 
  protected:
   virtual void* alloc(size_t bytes) {
+    void* p = _buffer + _size;
     _size += bytes;
-    return NULL;
+    return p;
   }
 
+  static const size_t BLOCK_CAPACITY = 32;
+
   size_t _size;
+  uint8_t _buffer[BLOCK_CAPACITY];
 };
 }

+ 6 - 0
test/DynamicJsonBuffer_Basic_Tests.cpp

@@ -26,3 +26,9 @@ TEST_F(DynamicJsonBuffer_Basic_Tests, GrowsAfterAlloc) {
   buffer.alloc(100);
   ASSERT_EQ(200, buffer.size());
 }
+
+TEST_F(DynamicJsonBuffer_Basic_Tests, ReturnDifferentPointer) {
+  void* p1 = buffer.alloc(100);
+  void* p2 = buffer.alloc(200);
+  ASSERT_NE(p1, p2);
+}