ソースを参照

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

Benoit Blanchon 11 年 前
コミット
ada588c112

+ 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);
+}