Test constructing strings from nullptr

This commit is contained in:
Chris Thrasher 2024-06-30 22:23:01 -06:00
parent fbd8407a5f
commit 0a8f19db7a
No known key found for this signature in database
GPG Key ID: 56FB686C9DFC8E2C

View File

@ -239,6 +239,23 @@ TEST_CASE("[System] sf::String")
} }
SECTION("ANSI C string constructor") SECTION("ANSI C string constructor")
{
SECTION("Nullptr")
{
const sf::String string = static_cast<char*>(nullptr);
CHECK(std::string(string).empty());
CHECK(std::wstring(string).empty());
CHECK(string.toAnsiString().empty());
CHECK(string.toWideString().empty());
CHECK(string.toUtf8().empty());
CHECK(string.toUtf16().empty());
CHECK(string.toUtf32().empty());
CHECK(string.getSize() == 0);
CHECK(string.isEmpty());
CHECK(string.getData() != nullptr);
}
SECTION("Non-empty string")
{ {
const sf::String string = "def"; const sf::String string = "def";
CHECK(std::string(string) == "def"s); CHECK(std::string(string) == "def"s);
@ -252,6 +269,7 @@ TEST_CASE("[System] sf::String")
CHECK(!string.isEmpty()); CHECK(!string.isEmpty());
CHECK(string.getData() != nullptr); CHECK(string.getData() != nullptr);
} }
}
SECTION("ANSI string constructor") SECTION("ANSI string constructor")
{ {
@ -284,6 +302,23 @@ TEST_CASE("[System] sf::String")
} }
SECTION("Wide C string constructor") SECTION("Wide C string constructor")
{
SECTION("Nullptr")
{
const sf::String string = static_cast<wchar_t*>(nullptr);
CHECK(std::string(string).empty());
CHECK(std::wstring(string).empty());
CHECK(string.toAnsiString().empty());
CHECK(string.toWideString().empty());
CHECK(string.toUtf8().empty());
CHECK(string.toUtf16().empty());
CHECK(string.toUtf32().empty());
CHECK(string.getSize() == 0);
CHECK(string.isEmpty());
CHECK(string.getData() != nullptr);
}
SECTION("Non-empty string")
{ {
const sf::String string = L"j\xFAl"; const sf::String string = L"j\xFAl";
CHECK(std::string(string) == select("j\xFAl"s, "j\0l"s)); CHECK(std::string(string) == select("j\xFAl"s, "j\0l"s));
@ -297,6 +332,7 @@ TEST_CASE("[System] sf::String")
CHECK(!string.isEmpty()); CHECK(!string.isEmpty());
CHECK(string.getData() != nullptr); CHECK(string.getData() != nullptr);
} }
}
SECTION("Wide string constructor") SECTION("Wide string constructor")
{ {
@ -329,6 +365,23 @@ TEST_CASE("[System] sf::String")
} }
SECTION("UTF-32 C string constructor") SECTION("UTF-32 C string constructor")
{
SECTION("Nullptr")
{
const sf::String string = static_cast<char32_t*>(nullptr);
CHECK(std::string(string).empty());
CHECK(std::wstring(string).empty());
CHECK(string.toAnsiString().empty());
CHECK(string.toWideString().empty());
CHECK(string.toUtf8().empty());
CHECK(string.toUtf16().empty());
CHECK(string.toUtf32().empty());
CHECK(string.getSize() == 0);
CHECK(string.isEmpty());
CHECK(string.getData() != nullptr);
}
SECTION("Non-empty string")
{ {
const sf::String string = U"\U0010ABCDrs"; const sf::String string = U"\U0010ABCDrs";
CHECK(std::string(string) == "\0rs"s); CHECK(std::string(string) == "\0rs"s);
@ -342,6 +395,7 @@ TEST_CASE("[System] sf::String")
CHECK(!string.isEmpty()); CHECK(!string.isEmpty());
CHECK(string.getData() != nullptr); CHECK(string.getData() != nullptr);
} }
}
SECTION("UTF-32 string constructor") SECTION("UTF-32 string constructor")
{ {