Marked strdup() as deprecated (issue #658)

This commit is contained in:
Benoit Blanchon
2018-01-14 14:02:10 +01:00
parent ae0b7a3ebd
commit 0612eef69b
8 changed files with 41 additions and 58 deletions

View File

@ -9,7 +9,6 @@ add_executable(DynamicJsonBufferTests
no_memory.cpp
size.cpp
startString.cpp
strdup.cpp
)
target_link_libraries(DynamicJsonBufferTests catch)

View File

@ -1,23 +0,0 @@
// ArduinoJson - arduinojson.org
// Copyright Benoit Blanchon 2014-2018
// MIT License
#include <ArduinoJson.h>
#include <catch.hpp>
TEST_CASE("DynamicJsonBuffer::strdup()") {
DynamicJsonBuffer buffer;
SECTION("Should return a copy") {
char original[] = "hello";
const char* copy = buffer.strdup(original);
strcpy(original, "world");
REQUIRE(std::string("hello") == copy);
}
SECTION("Given NULL, return NULL") {
const char* original = NULL;
const char* copy = buffer.strdup(original);
REQUIRE(0 == copy);
}
}

View File

@ -104,3 +104,37 @@ TEST_CASE("Deprecated functions") {
REQUIRE(123.45 == obj["hello"].as<double>());
}
}
TEST_CASE("DynamicJsonBuffer::strdup()") {
DynamicJsonBuffer buffer;
SECTION("char*") {
char original[] = "hello";
const char* copy = buffer.strdup(original);
strcpy(original, "world");
REQUIRE(std::string("hello") == copy);
}
SECTION("unsigned char*") {
unsigned char value[] = "world";
DynamicJsonBuffer jsonBuffer;
const char* dup = jsonBuffer.strdup(value);
REQUIRE(static_cast<const void*>(value) != static_cast<const void*>(dup));
REQUIRE(std::string("world") == dup);
}
SECTION("std::string") {
std::string original("hello");
const char* copy = buffer.strdup(original);
original[0] = 'w';
REQUIRE(std::string("hello") == copy);
}
SECTION("NULL") {
const char* original = NULL;
const char* copy = buffer.strdup(original);
REQUIRE(0 == copy);
}
}

View File

@ -240,11 +240,4 @@ TEST_CASE("std::string") {
REQUIRE(sizeBefore == sizeAfter);
}
SECTION("JsonBuffer_strdup") {
std::string original("hello");
const char *copy = jb.strdup(original);
original[0] = 'w';
REQUIRE(std::string("hello") == copy);
}
}

View File

@ -259,14 +259,4 @@ TEST_CASE("unsigned char string") {
REQUIRE(std::string("world") == arr[0]);
}
SECTION("JsonBuffer::strdup()") {
unsigned char value[] = "world";
DynamicJsonBuffer jsonBuffer;
const char* dup = jsonBuffer.strdup(value);
REQUIRE(static_cast<const void*>(value) != static_cast<const void*>(dup));
REQUIRE(std::string("world") == dup);
}
}

View File

@ -327,17 +327,5 @@ TEST_CASE("Variable Length Array") {
REQUIRE(std::string("world") == arr[0]);
}
SECTION("JsonBuffer_strdup") {
int i = 16;
char vla[i];
strcpy(vla, "world");
DynamicJsonBuffer jsonBuffer;
const char* dup = jsonBuffer.strdup(vla);
REQUIRE(static_cast<const void*>(vla) != static_cast<const void*>(dup));
REQUIRE(std::string("world") == dup);
}
}
#endif