mirror of
https://github.com/mat007/turtle.git
synced 2026-06-22 12:13:43 +00:00
Unit test nullptr C-style strings
Added unit tests for the cases of matching and serializing C-style strings (char*) that are nullptr. (As of this revision, these new tests correctly fail, except for the test of mock::equal; fix to follow.)
This commit is contained in:
parent
0dd0dfa15f
commit
528761b180
3 changed files with 26 additions and 1 deletions
|
|
@ -80,6 +80,15 @@ BOOST_AUTO_TEST_CASE(equal_constraint_deref)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(equal_null_c_string)
|
||||||
|
{
|
||||||
|
const char* const null_str = nullptr;
|
||||||
|
|
||||||
|
BOOST_CHECK(mock::equal(null_str).c_(null_str));
|
||||||
|
BOOST_CHECK(!mock::equal(null_str).c_("non-null string"));
|
||||||
|
BOOST_CHECK(!mock::equal("non-null-string").c_(null_str));
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(same_constraint)
|
BOOST_AUTO_TEST_CASE(same_constraint)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,14 @@ BOOST_AUTO_TEST_CASE(strings_are_serialized_with_double_quotes)
|
||||||
BOOST_CHECK_EQUAL("\"string\"", to_string(std::string("string")));
|
BOOST_CHECK_EQUAL("\"string\"", to_string(std::string("string")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(null_c_strings_are_serialized_to_nullptr)
|
||||||
|
{
|
||||||
|
const char* const null_str = nullptr;
|
||||||
|
BOOST_CHECK_EQUAL("nullptr", to_string(null_str));
|
||||||
|
// Note the lack of double quotes in the output, as opposed to when the
|
||||||
|
// string "nullptr" is serialized.
|
||||||
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
struct non_serializable
|
struct non_serializable
|
||||||
{};
|
{};
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ BOOST_AUTO_TEST_CASE(ref_to_int_and_int_can_be_compared)
|
||||||
namespace {
|
namespace {
|
||||||
struct fixture
|
struct fixture
|
||||||
{
|
{
|
||||||
fixture() : text("same text"), actual(text.c_str())
|
fixture() : text("same text"), actual(text.c_str()), null_str(nullptr)
|
||||||
{
|
{
|
||||||
const char* static_string = "same text";
|
const char* static_string = "same text";
|
||||||
BOOST_REQUIRE(actual != static_string);
|
BOOST_REQUIRE(actual != static_string);
|
||||||
|
|
@ -44,6 +44,7 @@ struct fixture
|
||||||
}
|
}
|
||||||
std::string text;
|
std::string text;
|
||||||
const char* actual;
|
const char* actual;
|
||||||
|
const char* null_str;
|
||||||
};
|
};
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
|
@ -75,6 +76,13 @@ BOOST_FIXTURE_TEST_CASE(const_char_pointer_and_std_string_can_be_compared, fixtu
|
||||||
BOOST_CHECK(!match(std::string("different text"), actual));
|
BOOST_CHECK(!match(std::string("different text"), actual));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_FIXTURE_TEST_CASE(null_const_char_pointers_can_be_compared, fixture)
|
||||||
|
{
|
||||||
|
BOOST_CHECK(match(null_str, null_str));
|
||||||
|
BOOST_CHECK(!match(null_str, "non-null string"));
|
||||||
|
BOOST_CHECK(!match("non-null string", null_str));
|
||||||
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
std::string serialize(const T& t)
|
std::string serialize(const T& t)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue