2016-01-07 22:35:12 +01:00
|
|
|
// Copyright Benoit Blanchon 2014-2016
|
2014-12-11 21:05:45 +01:00
|
|
|
// MIT License
|
|
|
|
//
|
|
|
|
// Arduino JSON library
|
|
|
|
// https://github.com/bblanchon/ArduinoJson
|
2016-01-07 22:35:12 +01:00
|
|
|
// If you like this project, please add a star!
|
2014-12-11 21:05:45 +01:00
|
|
|
|
2016-06-22 21:41:19 +02:00
|
|
|
#include <ArduinoJson.h>
|
2016-11-06 17:48:32 +01:00
|
|
|
#include <gtest/gtest.h>
|
2014-12-11 21:05:45 +01:00
|
|
|
|
|
|
|
class DynamicJsonBuffer_Basic_Tests : public testing::Test {
|
|
|
|
protected:
|
|
|
|
DynamicJsonBuffer buffer;
|
|
|
|
};
|
|
|
|
|
|
|
|
TEST_F(DynamicJsonBuffer_Basic_Tests, InitialSizeIsZero) {
|
|
|
|
ASSERT_EQ(0, buffer.size());
|
|
|
|
}
|
2014-12-13 09:54:04 +01:00
|
|
|
|
2014-12-13 20:52:59 +01:00
|
|
|
TEST_F(DynamicJsonBuffer_Basic_Tests, SizeIncreasesAfterAlloc) {
|
2014-12-13 10:13:24 +01:00
|
|
|
buffer.alloc(1);
|
2015-09-28 22:14:50 +02:00
|
|
|
ASSERT_LE(1U, buffer.size());
|
2014-12-13 10:13:24 +01:00
|
|
|
buffer.alloc(1);
|
2015-09-28 22:14:50 +02:00
|
|
|
ASSERT_LE(2U, buffer.size());
|
2014-12-13 09:54:04 +01:00
|
|
|
}
|
2014-12-13 10:03:01 +01:00
|
|
|
|
|
|
|
TEST_F(DynamicJsonBuffer_Basic_Tests, ReturnDifferentPointer) {
|
2014-12-13 10:13:24 +01:00
|
|
|
void* p1 = buffer.alloc(1);
|
|
|
|
void* p2 = buffer.alloc(2);
|
2014-12-13 10:03:01 +01:00
|
|
|
ASSERT_NE(p1, p2);
|
|
|
|
}
|
2015-09-01 22:21:50 +02:00
|
|
|
|
|
|
|
TEST_F(DynamicJsonBuffer_Basic_Tests, Alignment) {
|
|
|
|
size_t mask = sizeof(void*) - 1;
|
|
|
|
|
|
|
|
for (size_t size = 1; size <= sizeof(void*); size++) {
|
|
|
|
size_t addr = reinterpret_cast<size_t>(buffer.alloc(1));
|
|
|
|
ASSERT_EQ(0, addr & mask);
|
|
|
|
}
|
|
|
|
}
|
2016-11-06 17:48:32 +01:00
|
|
|
|
|
|
|
TEST_F(DynamicJsonBuffer_Basic_Tests, strdup) {
|
|
|
|
char original[] = "hello";
|
|
|
|
char* copy = buffer.strdup(original);
|
|
|
|
strcpy(original, "world");
|
|
|
|
ASSERT_STREQ("hello", copy);
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_F(DynamicJsonBuffer_Basic_Tests, strdup_givenNull) {
|
|
|
|
const char* original = NULL;
|
|
|
|
char* copy = buffer.strdup(original);
|
|
|
|
ASSERT_EQ(NULL, copy);
|
|
|
|
}
|