Clang: Add equal operators for ClangString

Converting them in a Utf8String in an inner loop can be quite heavy.

Change-Id: I4f2ccde47a6e3ca08ed054462eb7772ded9e55c9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Marco Bubke
2016-09-07 11:58:34 +02:00
committed by Nikolai Kosjar
parent f22bd9dc4c
commit 43d6726c70
2 changed files with 110 additions and 0 deletions

View File

@@ -35,6 +35,7 @@
namespace {
using ::testing::StrEq;
using ::testing::Eq;
using ClangBackEnd::ClangString;
@@ -88,4 +89,82 @@ TEST(ClangString, SpellingAsCString)
ASSERT_THAT(text.cString(), StrEq("text"));
}
TEST(ClangString, EqualBetweenClangStrings)
{
ClangString text(CXString{"text", 0});
ClangString text2(CXString{"text", 0});
bool textIsEqual = text == text2;
ASSERT_TRUE(textIsEqual);
}
TEST(ClangString, NotEqualBetweenClangStrings)
{
ClangString text(CXString{"text", 0});
ClangString text2(CXString{"text ", 0});
bool textIsEqual = text == text2;
ASSERT_FALSE(textIsEqual);
}
TEST(ClangString, EqualClangStringAndCString)
{
ClangString text(CXString{"text", 0});
bool textIsEqual = text == "text";
ASSERT_TRUE(textIsEqual);
}
TEST(ClangString, NotEqualClangStringAndCString)
{
ClangString text(CXString{"text", 0});
bool textIsEqual = text == "text ";
ASSERT_FALSE(textIsEqual);
}
TEST(ClangString, EqualCStringAndClangString)
{
ClangString text(CXString{"text", 0});
bool textIsEqual = "text" == text;
ASSERT_TRUE(textIsEqual);
}
TEST(ClangString, EqualClangStringPointerAndCString)
{
ClangString text(CXString{"text", 0});
const char *cString = "text";
bool textIsEqual = cString == text;
ASSERT_TRUE(textIsEqual);
}
TEST(ClangString, NotEqualClangStringPointerAndCString)
{
ClangString text(CXString{"text", 0});
const char *cString = "text ";
bool textIsEqual = cString == text;
ASSERT_FALSE(textIsEqual);
}
TEST(ClangString, EqualCStringAndClangStringPointer)
{
ClangString text(CXString{"text", 0});
const char *cString = "text";
bool textIsEqual = text == cString;
ASSERT_TRUE(textIsEqual);
}
}