diff --git a/include/ArduinoJson/StaticJsonBuffer.hpp b/include/ArduinoJson/StaticJsonBuffer.hpp index 5b2ad58f..29a0790e 100644 --- a/include/ArduinoJson/StaticJsonBuffer.hpp +++ b/include/ArduinoJson/StaticJsonBuffer.hpp @@ -10,6 +10,9 @@ namespace ArduinoJson { +// Implements a JsonBuffer with fixed memory allocation. +// The template paramenter CAPACITY specifies the capacity of the buffer in +// bytes. template class StaticJsonBuffer : public JsonBuffer { public: @@ -18,7 +21,7 @@ class StaticJsonBuffer : public JsonBuffer { size_t capacity() const { return CAPACITY; } size_t size() const { return _size; } - void clear() { _size = 0; } + // void clear() { _size = 0; } protected: virtual void* alloc(size_t size) { diff --git a/test/IntegrationTests.cpp b/test/IntegrationTests.cpp index d0dd793d..a8fb6062 100644 --- a/test/IntegrationTests.cpp +++ b/test/IntegrationTests.cpp @@ -12,30 +12,38 @@ using namespace ArduinoJson; class IntegrationTests : public testing::TestWithParam { + const static size_t MAX_JSON_SIZE = 10000; + protected: virtual void SetUp() { _input = GetParam(); strcpy(inputBuffer, _input); } + void parseThenPrint(char* input, char* output) { + StaticJsonBuffer<10000> json; + json.parseObject(input).printTo(output, MAX_JSON_SIZE); + } + + void parseThenPrettyPrint(char* input, char* output) { + StaticJsonBuffer<10000> json; + json.parseObject(input).prettyPrintTo(output, MAX_JSON_SIZE); + } + const char* _input; - char inputBuffer[10000]; - char outputBuffer[10000]; - char intermediateBuffer[10000]; - StaticJsonBuffer<10000> json; + char inputBuffer[MAX_JSON_SIZE]; + char outputBuffer[MAX_JSON_SIZE]; + char intermediateBuffer[MAX_JSON_SIZE]; }; TEST_P(IntegrationTests, ParseThenPrint) { - json.parseObject(inputBuffer).printTo(outputBuffer, sizeof(outputBuffer)); + parseThenPrint(inputBuffer, outputBuffer); ASSERT_STREQ(_input, outputBuffer); } TEST_P(IntegrationTests, ParseThenPrettyPrintThenParseThenPrint) { - json.parseObject(inputBuffer) - .prettyPrintTo(intermediateBuffer, sizeof(intermediateBuffer)); - json.clear(); - json.parseObject(intermediateBuffer) - .printTo(outputBuffer, sizeof(outputBuffer)); + parseThenPrettyPrint(inputBuffer, intermediateBuffer); + parseThenPrint(intermediateBuffer, outputBuffer); ASSERT_STREQ(_input, outputBuffer); }