Loading tools/aapt2/cmd/Link.h +2 −2 Original line number Diff line number Diff line Loading @@ -264,8 +264,8 @@ class LinkCommand : public Command { &options_.keep_raw_values); AddOptionalFlag("--no-compress-regex", "Do not compress extensions matching the regular expression. Remember to\n" " use the '$' symbol for end of line. Uses a non case-sensitive\n" " ECMAScript regular expression grammar.", "use the '$' symbol for end of line. Uses a case-sensitive ECMAScript" "regular expression grammar.", &no_compress_regex); AddOptionalSwitch("--warn-manifest-validation", "Treat manifest validation errors as warnings.", Loading tools/aapt2/cmd/Util.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -436,9 +436,9 @@ void SetLongVersionCode(xml::Element* manifest, uint64_t version) { } std::regex GetRegularExpression(const std::string &input) { // Standard ECMAScript grammar plus case insensitive. // Standard ECMAScript grammar. std::regex case_insensitive( input, std::regex_constants::icase | std::regex_constants::ECMAScript); input, std::regex_constants::ECMAScript); return case_insensitive; } Loading tools/aapt2/cmd/Util_test.cpp +22 −3 Original line number Diff line number Diff line Loading @@ -383,13 +383,32 @@ TEST (UtilTest, AdjustSplitConstraintsForMinSdk) { EXPECT_NE(*adjusted_contraints[1].configs.begin(), ConfigDescription::DefaultConfig()); } // TODO(127793905): Enable test /*TEST(UtilTest, RegularExperssions) { TEST (UtilTest, RegularExperssionsSimple) { std::string valid(".bc$"); std::regex expression = GetRegularExpression(valid); EXPECT_TRUE(std::regex_search("file.abc", expression)); EXPECT_TRUE(std::regex_search("file.123bc", expression)); EXPECT_FALSE(std::regex_search("abc.zip", expression)); }*/ } TEST (UtilTest, RegularExpressionComplex) { std::string valid("\\.(d|D)(e|E)(x|X)$"); std::regex expression = GetRegularExpression(valid); EXPECT_TRUE(std::regex_search("file.dex", expression)); EXPECT_TRUE(std::regex_search("file.DEX", expression)); EXPECT_TRUE(std::regex_search("file.dEx", expression)); EXPECT_FALSE(std::regex_search("file.dexx", expression)); EXPECT_FALSE(std::regex_search("dex.file", expression)); EXPECT_FALSE(std::regex_search("file.adex", expression)); } TEST (UtilTest, RegularExpressionNonEnglish) { std::string valid("\\.(k|K)(o|O)(ń|Ń)(c|C)(ó|Ó)(w|W)(k|K)(a|A)$"); std::regex expression = GetRegularExpression(valid); EXPECT_TRUE(std::regex_search("file.końcówka", expression)); EXPECT_TRUE(std::regex_search("file.KOŃCÓWKA", expression)); EXPECT_TRUE(std::regex_search("file.kOńcÓwkA", expression)); EXPECT_FALSE(std::regex_search("file.koncowka", expression)); } } // namespace aapt Loading
tools/aapt2/cmd/Link.h +2 −2 Original line number Diff line number Diff line Loading @@ -264,8 +264,8 @@ class LinkCommand : public Command { &options_.keep_raw_values); AddOptionalFlag("--no-compress-regex", "Do not compress extensions matching the regular expression. Remember to\n" " use the '$' symbol for end of line. Uses a non case-sensitive\n" " ECMAScript regular expression grammar.", "use the '$' symbol for end of line. Uses a case-sensitive ECMAScript" "regular expression grammar.", &no_compress_regex); AddOptionalSwitch("--warn-manifest-validation", "Treat manifest validation errors as warnings.", Loading
tools/aapt2/cmd/Util.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -436,9 +436,9 @@ void SetLongVersionCode(xml::Element* manifest, uint64_t version) { } std::regex GetRegularExpression(const std::string &input) { // Standard ECMAScript grammar plus case insensitive. // Standard ECMAScript grammar. std::regex case_insensitive( input, std::regex_constants::icase | std::regex_constants::ECMAScript); input, std::regex_constants::ECMAScript); return case_insensitive; } Loading
tools/aapt2/cmd/Util_test.cpp +22 −3 Original line number Diff line number Diff line Loading @@ -383,13 +383,32 @@ TEST (UtilTest, AdjustSplitConstraintsForMinSdk) { EXPECT_NE(*adjusted_contraints[1].configs.begin(), ConfigDescription::DefaultConfig()); } // TODO(127793905): Enable test /*TEST(UtilTest, RegularExperssions) { TEST (UtilTest, RegularExperssionsSimple) { std::string valid(".bc$"); std::regex expression = GetRegularExpression(valid); EXPECT_TRUE(std::regex_search("file.abc", expression)); EXPECT_TRUE(std::regex_search("file.123bc", expression)); EXPECT_FALSE(std::regex_search("abc.zip", expression)); }*/ } TEST (UtilTest, RegularExpressionComplex) { std::string valid("\\.(d|D)(e|E)(x|X)$"); std::regex expression = GetRegularExpression(valid); EXPECT_TRUE(std::regex_search("file.dex", expression)); EXPECT_TRUE(std::regex_search("file.DEX", expression)); EXPECT_TRUE(std::regex_search("file.dEx", expression)); EXPECT_FALSE(std::regex_search("file.dexx", expression)); EXPECT_FALSE(std::regex_search("dex.file", expression)); EXPECT_FALSE(std::regex_search("file.adex", expression)); } TEST (UtilTest, RegularExpressionNonEnglish) { std::string valid("\\.(k|K)(o|O)(ń|Ń)(c|C)(ó|Ó)(w|W)(k|K)(a|A)$"); std::regex expression = GetRegularExpression(valid); EXPECT_TRUE(std::regex_search("file.końcówka", expression)); EXPECT_TRUE(std::regex_search("file.KOŃCÓWKA", expression)); EXPECT_TRUE(std::regex_search("file.kOńcÓwkA", expression)); EXPECT_FALSE(std::regex_search("file.koncowka", expression)); } } // namespace aapt