Fixed segmentation fault in DynamicJsonBuffer when memory allocation fails (issue #92)

This commit is contained in:
Benoit Blanchon
2015-08-01 16:31:59 +02:00
parent f5b83f9314
commit 2524a00a96
8 changed files with 163 additions and 133 deletions

View File

@ -0,0 +1,37 @@
// Copyright Benoit Blanchon 2014-2015
// MIT License
//
// Arduino JSON library
// https://github.com/bblanchon/ArduinoJson
#include <gtest/gtest.h>
#include <ArduinoJson.h>
class DynamicJsonBuffer_NoMemory_Tests : public ::testing::Test {
class NoMemoryAllocator {
public:
void* allocate(size_t) { return NULL; }
void deallocate(void*) {}
};
protected:
Internals::BlockJsonBuffer<NoMemoryAllocator> _jsonBuffer;
};
TEST_F(DynamicJsonBuffer_NoMemory_Tests, CreateArray) {
ASSERT_FALSE(_jsonBuffer.createArray().success());
}
TEST_F(DynamicJsonBuffer_NoMemory_Tests, CreateObject) {
ASSERT_FALSE(_jsonBuffer.createObject().success());
}
TEST_F(DynamicJsonBuffer_NoMemory_Tests, ParseArray) {
char json[] = "[]";
ASSERT_FALSE(_jsonBuffer.parseArray(json).success());
}
TEST_F(DynamicJsonBuffer_NoMemory_Tests, ParseObject) {
char json[] = "{}";
ASSERT_FALSE(_jsonBuffer.parseObject(json).success());
}