Replace String comparisons with "", String() to is_empty()

Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
This commit is contained in:
Nathan Franke 2021-12-09 03:42:46 -06:00
parent 31ded7e126
commit 49403cbfa0
No known key found for this signature in database
GPG key ID: 92164DCCF3B1F723
226 changed files with 1051 additions and 1034 deletions

View file

@ -53,7 +53,7 @@ TEST_CASE("[FileAccess] CSV read") {
REQUIRE(row2.size() == 3);
CHECK(row2[0] == "GOOD_EVENING");
CHECK(row2[1] == "Good Evening");
CHECK(row2[2] == ""); // Use case: not yet translated!
CHECK(row2[2].is_empty()); // Use case: not yet translated!
// https://github.com/godotengine/godot/issues/44269
CHECK_MESSAGE(row2[2] != "\"", "Should not parse empty string as a single double quote.");

View file

@ -312,7 +312,7 @@ public:
}
}
if (name != String()) {
if (!name.is_empty()) {
namespace_stack[at_level] = name;
}

View file

@ -157,10 +157,10 @@ TEST_CASE("[String] Invalid UTF8") {
String s;
bool err = s.parse_utf8((const char *)u8str);
CHECK(err);
CHECK(s == String());
CHECK(s.is_empty());
CharString cs = (const char *)u8str;
CHECK(String::utf8(cs) == String());
CHECK(String::utf8(cs).is_empty());
ERR_PRINT_ON
}
@ -170,10 +170,10 @@ TEST_CASE("[String] Invalid UTF16") {
String s;
bool err = s.parse_utf16(u16str);
CHECK(err);
CHECK(s == String());
CHECK(s.is_empty());
Char16String cs = u16str;
CHECK(String::utf16(cs) == String());
CHECK(String::utf16(cs).is_empty());
ERR_PRINT_ON
}
@ -1439,6 +1439,24 @@ TEST_CASE("[String] Variant ptr indexed set") {
CHECK_EQ(s, String("azcd"));
}
TEST_CASE("[Stress][String] Empty via ' == String()'") {
for (int i = 0; i < 100000; ++i) {
String str = "Hello World!";
if (str.is_empty()) {
continue;
}
}
}
TEST_CASE("[Stress][String] Empty via `is_empty()`") {
for (int i = 0; i < 100000; ++i) {
String str = "Hello World!";
if (str.is_empty()) {
continue;
}
}
}
} // namespace TestString
#endif // TEST_STRING_H

View file

@ -3235,7 +3235,7 @@ TEST_CASE("[SceneTree][CodeEdit] Backspace delete") {
code_edit->insert_text_at_caret("line 1\nline 2\nline 3");
code_edit->select_all();
code_edit->backspace();
CHECK(code_edit->get_text() == "");
CHECK(code_edit->get_text().is_empty());
/* Backspace at the beginning without selection has no effect. */
code_edit->set_text("");