Added name mangling tests.
This commit is contained in:
parent
8f4845d4d2
commit
22bad8fb22
2 changed files with 54 additions and 28 deletions
|
|
@ -34,11 +34,10 @@ public:
|
||||||
ReplaceRules replaceRules;
|
ReplaceRules replaceRules;
|
||||||
// { {"[ -_]", QRegularExpression::OptimizeOnFirstUsageOption }, "", true }
|
// { {"[ -_]", QRegularExpression::OptimizeOnFirstUsageOption }, "", true }
|
||||||
|
|
||||||
QString replaceSpaceWith; ///< default is empty string which means remove spaces
|
|
||||||
//CollisionHandling CollisionHandling = CollisionHandling::Restrict;
|
//CollisionHandling CollisionHandling = CollisionHandling::Restrict;
|
||||||
CaseConversion caseConversion = CaseConversion::AsIs; ///< overall case conversion rule
|
CaseConversion caseConversion = CaseConversion::AsIs; ///< overall case conversion rule
|
||||||
//CaseConversion caseFirstChar = CaseConversion::AsIs; ///< case of the first char
|
//CaseConversion caseFirstChar = CaseConversion::AsIs; ///< case of the first char
|
||||||
bool camelCase = false; ///< removes underscores and make first char after underscore uppercase
|
// bool camelCase = false; ///< removes underscores and make first char after underscore uppercase
|
||||||
|
|
||||||
void apply(const ReplaceRule &rule, QString &in) const;
|
void apply(const ReplaceRule &rule, QString &in) const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,41 +14,68 @@ protected:
|
||||||
{
|
{
|
||||||
NameManglingRules r;
|
NameManglingRules r;
|
||||||
|
|
||||||
auto p = GetParam();
|
// auto p = GetParam();
|
||||||
//ReplaceRules replaceRules;
|
// //ReplaceRules replaceRules;
|
||||||
// { {"[ -_]", QRegularExpression::OptimizeOnFirstUsageOption }, "", true }
|
// // { {"[ -_]", QRegularExpression::OptimizeOnFirstUsageOption }, "", true }
|
||||||
r.replaceRules;
|
// // r.replaceRules;
|
||||||
|
|
||||||
//QString replaceSpaceWith; ///< default is empty string which means remove spaces
|
// //CaseConversion caseConversion = CaseConversion::AsIs; ///< overall case conversion rule
|
||||||
r.replaceSpaceWith = std::get<0>(p);
|
// r.caseConversion = std::get<1>(p);
|
||||||
|
// //CaseConversion caseFirstChar = CaseConversion::AsIs; ///< case of the first char
|
||||||
//CollisionHandling CollisionHandling = CollisionHandling::Restrict;
|
// //r.camelCase = std::get<2>(p); ///< removes underscores and make first char after underscore uppercase
|
||||||
//CaseConversion caseConversion = CaseConversion::AsIs; ///< overall case conversion rule
|
// rules = r;
|
||||||
r.caseConversion = std::get<1>(p);
|
|
||||||
//CaseConversion caseFirstChar = CaseConversion::AsIs; ///< case of the first char
|
|
||||||
r.camelCase = std::get<2>(p); ///< removes underscores and make first char after underscore uppercase
|
|
||||||
rules = r;
|
|
||||||
}
|
}
|
||||||
NameManglingRules rules;
|
NameManglingRules rules;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// First a few test to test some basic things
|
||||||
|
|
||||||
TEST_P(NameManglingRulesTest, test1)
|
|
||||||
|
TEST_F(NameManglingRulesTest, caseConversionAsIs)
|
||||||
{
|
{
|
||||||
ASSERT_EQ(rules.replaceSpaceWith, std::get<0>(GetParam()));
|
QString input = "Ab";
|
||||||
|
QString expected = input;
|
||||||
|
|
||||||
|
NameManglingRules rules;
|
||||||
|
rules.caseConversion = NameManglingRules::CaseConversion::AsIs;
|
||||||
|
QString result = rules.transform(input);
|
||||||
|
|
||||||
|
ASSERT_EQ(result, expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_P(NameManglingRulesTest, test2)
|
TEST_F(NameManglingRulesTest, caseConversionLower)
|
||||||
{
|
{
|
||||||
ASSERT_EQ(rules.camelCase, std::get<2>(GetParam()));
|
QString input = "Ab";
|
||||||
|
QString expected = "ab";
|
||||||
|
|
||||||
|
NameManglingRules rules;
|
||||||
|
rules.caseConversion = NameManglingRules::CaseConversion::Lower;
|
||||||
|
QString result = rules.transform(input);
|
||||||
|
|
||||||
|
ASSERT_EQ(result, expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(NameManglingRulesTest, caseConversionUpper)
|
||||||
|
{
|
||||||
|
QString input = "Ab";
|
||||||
|
QString expected = "AB";
|
||||||
|
|
||||||
|
NameManglingRules rules;
|
||||||
|
rules.caseConversion = NameManglingRules::CaseConversion::Upper;
|
||||||
|
QString result = rules.transform(input);
|
||||||
|
|
||||||
|
ASSERT_EQ(result, expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(NameManglingRulesTest, replace)
|
||||||
|
{
|
||||||
|
QString input = "abc-def ghi";
|
||||||
|
QString expected = "abc_Def_Ghi";
|
||||||
|
|
||||||
|
NameManglingRules rules;
|
||||||
|
rules.replaceRules.push_back({QRegularExpression("[- ]"), "_", true});
|
||||||
|
QString result = rules.transform(input);
|
||||||
|
|
||||||
|
ASSERT_EQ(result, expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
INSTANTIATE_TEST_CASE_P(InstantiationName1,
|
|
||||||
NameManglingRulesTest,
|
|
||||||
::testing::Combine(
|
|
||||||
::testing::Values("", "_", "+"),
|
|
||||||
::testing::Values(NameManglingRules::CaseConversion::AsIs,
|
|
||||||
NameManglingRules::CaseConversion::Lower,
|
|
||||||
NameManglingRules::CaseConversion::Upper),
|
|
||||||
::testing::Bool()
|
|
||||||
));
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue