summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support/SpecialCaseListTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/Support/SpecialCaseListTest.cpp')
-rw-r--r--llvm/unittests/Support/SpecialCaseListTest.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/llvm/unittests/Support/SpecialCaseListTest.cpp b/llvm/unittests/Support/SpecialCaseListTest.cpp
index 28c21dab8e3..4647499a593 100644
--- a/llvm/unittests/Support/SpecialCaseListTest.cpp
+++ b/llvm/unittests/Support/SpecialCaseListTest.cpp
@@ -134,4 +134,48 @@ TEST_F(SpecialCaseListTest, MultipleBlacklists) {
sys::fs::remove(Path);
}
+TEST_F(SpecialCaseListTest, NoTrigramsInRules) {
+ std::unique_ptr<SpecialCaseList> SCL = makeSpecialCaseList("fun:b.r\n"
+ "fun:za*az\n");
+ EXPECT_TRUE(SCL->inSection("fun", "bar"));
+ EXPECT_FALSE(SCL->inSection("fun", "baz"));
+ EXPECT_TRUE(SCL->inSection("fun", "zakaz"));
+ EXPECT_FALSE(SCL->inSection("fun", "zaraza"));
+}
+
+TEST_F(SpecialCaseListTest, NoTrigramsInARule) {
+ std::unique_ptr<SpecialCaseList> SCL = makeSpecialCaseList("fun:*bar*\n"
+ "fun:za*az\n");
+ EXPECT_TRUE(SCL->inSection("fun", "abara"));
+ EXPECT_FALSE(SCL->inSection("fun", "bor"));
+ EXPECT_TRUE(SCL->inSection("fun", "zakaz"));
+ EXPECT_FALSE(SCL->inSection("fun", "zaraza"));
+}
+
+TEST_F(SpecialCaseListTest, RepetitiveRule) {
+ std::unique_ptr<SpecialCaseList> SCL = makeSpecialCaseList("fun:*bar*bar*bar*bar*\n"
+ "fun:bar*\n");
+ EXPECT_TRUE(SCL->inSection("fun", "bara"));
+ EXPECT_FALSE(SCL->inSection("fun", "abara"));
+ EXPECT_TRUE(SCL->inSection("fun", "barbarbarbar"));
+ EXPECT_TRUE(SCL->inSection("fun", "abarbarbarbar"));
+ EXPECT_FALSE(SCL->inSection("fun", "abarbarbar"));
+}
+
+TEST_F(SpecialCaseListTest, SpecialSymbolRule) {
+ std::unique_ptr<SpecialCaseList> SCL = makeSpecialCaseList("src:*c\\+\\+abi*\n");
+ EXPECT_TRUE(SCL->inSection("src", "c++abi"));
+ EXPECT_FALSE(SCL->inSection("src", "c\\+\\+abi"));
+}
+
+TEST_F(SpecialCaseListTest, PopularTrigram) {
+ std::unique_ptr<SpecialCaseList> SCL = makeSpecialCaseList("fun:*aaaaaa*\n"
+ "fun:*aaaaa*\n"
+ "fun:*aaaa*\n"
+ "fun:*aaa*\n");
+ EXPECT_TRUE(SCL->inSection("fun", "aaa"));
+ EXPECT_TRUE(SCL->inSection("fun", "aaaa"));
+ EXPECT_TRUE(SCL->inSection("fun", "aaaabbbaaa"));
+}
+
}
OpenPOWER on IntegriCloud