Removed StaticJsonBuffer.clear()

This commit is contained in:
Benoit Blanchon
2014-11-06 17:08:42 +01:00
parent d94bcbf249
commit a7b78fadb0
2 changed files with 22 additions and 11 deletions

View File

@ -10,6 +10,9 @@
namespace ArduinoJson { namespace ArduinoJson {
// Implements a JsonBuffer with fixed memory allocation.
// The template paramenter CAPACITY specifies the capacity of the buffer in
// bytes.
template <size_t CAPACITY> template <size_t CAPACITY>
class StaticJsonBuffer : public JsonBuffer { class StaticJsonBuffer : public JsonBuffer {
public: public:
@ -18,7 +21,7 @@ class StaticJsonBuffer : public JsonBuffer {
size_t capacity() const { return CAPACITY; } size_t capacity() const { return CAPACITY; }
size_t size() const { return _size; } size_t size() const { return _size; }
void clear() { _size = 0; } // void clear() { _size = 0; }
protected: protected:
virtual void* alloc(size_t size) { virtual void* alloc(size_t size) {

View File

@ -12,30 +12,38 @@
using namespace ArduinoJson; using namespace ArduinoJson;
class IntegrationTests : public testing::TestWithParam<const char*> { class IntegrationTests : public testing::TestWithParam<const char*> {
const static size_t MAX_JSON_SIZE = 10000;
protected: protected:
virtual void SetUp() { virtual void SetUp() {
_input = GetParam(); _input = GetParam();
strcpy(inputBuffer, _input); 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; const char* _input;
char inputBuffer[10000]; char inputBuffer[MAX_JSON_SIZE];
char outputBuffer[10000]; char outputBuffer[MAX_JSON_SIZE];
char intermediateBuffer[10000]; char intermediateBuffer[MAX_JSON_SIZE];
StaticJsonBuffer<10000> json;
}; };
TEST_P(IntegrationTests, ParseThenPrint) { TEST_P(IntegrationTests, ParseThenPrint) {
json.parseObject(inputBuffer).printTo(outputBuffer, sizeof(outputBuffer)); parseThenPrint(inputBuffer, outputBuffer);
ASSERT_STREQ(_input, outputBuffer); ASSERT_STREQ(_input, outputBuffer);
} }
TEST_P(IntegrationTests, ParseThenPrettyPrintThenParseThenPrint) { TEST_P(IntegrationTests, ParseThenPrettyPrintThenParseThenPrint) {
json.parseObject(inputBuffer) parseThenPrettyPrint(inputBuffer, intermediateBuffer);
.prettyPrintTo(intermediateBuffer, sizeof(intermediateBuffer)); parseThenPrint(intermediateBuffer, outputBuffer);
json.clear();
json.parseObject(intermediateBuffer)
.printTo(outputBuffer, sizeof(outputBuffer));
ASSERT_STREQ(_input, outputBuffer); ASSERT_STREQ(_input, outputBuffer);
} }