GlobList: added a clear test for pattern priority
Summary:
The last glob that matches the string decides whether that string is
included or excluded.
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D66787
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@370028 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/unittests/clang-tidy/GlobListTest.cpp b/unittests/clang-tidy/GlobListTest.cpp
index 2f5c4b5..f0c3a70 100644
--- a/unittests/clang-tidy/GlobListTest.cpp
+++ b/unittests/clang-tidy/GlobListTest.cpp
@@ -31,7 +31,7 @@
EXPECT_TRUE(Filter.contains("*"));
}
-TEST(GlobList, Simple) {
+TEST(GlobList, OneSimplePattern) {
GlobList Filter("aaa");
EXPECT_TRUE(Filter.contains("aaa"));
@@ -41,6 +41,40 @@
EXPECT_FALSE(Filter.contains("bbb"));
}
+TEST(GlobList, TwoSimplePatterns) {
+ GlobList Filter("aaa,bbb");
+
+ EXPECT_TRUE(Filter.contains("aaa"));
+ EXPECT_TRUE(Filter.contains("bbb"));
+ EXPECT_FALSE(Filter.contains(""));
+ EXPECT_FALSE(Filter.contains("aa"));
+ EXPECT_FALSE(Filter.contains("aaaa"));
+ EXPECT_FALSE(Filter.contains("bbbb"));
+}
+
+TEST(GlobList, PatternPriority) {
+ // The last glob that matches the string decides whether that string is
+ // included or excluded.
+ {
+ GlobList Filter("a*,-aaa");
+
+ EXPECT_FALSE(Filter.contains(""));
+ EXPECT_TRUE(Filter.contains("a"));
+ EXPECT_TRUE(Filter.contains("aa"));
+ EXPECT_FALSE(Filter.contains("aaa"));
+ EXPECT_TRUE(Filter.contains("aaaa"));
+ }
+ {
+ GlobList Filter("-aaa,a*");
+
+ EXPECT_FALSE(Filter.contains(""));
+ EXPECT_TRUE(Filter.contains("a"));
+ EXPECT_TRUE(Filter.contains("aa"));
+ EXPECT_TRUE(Filter.contains("aaa"));
+ EXPECT_TRUE(Filter.contains("aaaa"));
+ }
+}
+
TEST(GlobList, WhitespacesAtBegin) {
GlobList Filter("-*, a.b.*");