1 #include "GlobList.h"
2 #include "gtest/gtest.h"
3
4 namespace clang {
5 namespace tidy {
6
TEST(GlobList,Empty)7 TEST(GlobList, Empty) {
8 GlobList Filter("");
9
10 EXPECT_TRUE(Filter.contains(""));
11 EXPECT_FALSE(Filter.contains("aaa"));
12 }
13
TEST(GlobList,Nothing)14 TEST(GlobList, Nothing) {
15 GlobList Filter("-*");
16
17 EXPECT_FALSE(Filter.contains(""));
18 EXPECT_FALSE(Filter.contains("a"));
19 EXPECT_FALSE(Filter.contains("-*"));
20 EXPECT_FALSE(Filter.contains("-"));
21 EXPECT_FALSE(Filter.contains("*"));
22 }
23
TEST(GlobList,Everything)24 TEST(GlobList, Everything) {
25 GlobList Filter("*");
26
27 EXPECT_TRUE(Filter.contains(""));
28 EXPECT_TRUE(Filter.contains("aaaa"));
29 EXPECT_TRUE(Filter.contains("-*"));
30 EXPECT_TRUE(Filter.contains("-"));
31 EXPECT_TRUE(Filter.contains("*"));
32 }
33
TEST(GlobList,OneSimplePattern)34 TEST(GlobList, OneSimplePattern) {
35 GlobList Filter("aaa");
36
37 EXPECT_TRUE(Filter.contains("aaa"));
38 EXPECT_FALSE(Filter.contains(""));
39 EXPECT_FALSE(Filter.contains("aa"));
40 EXPECT_FALSE(Filter.contains("aaaa"));
41 EXPECT_FALSE(Filter.contains("bbb"));
42 }
43
TEST(GlobList,TwoSimplePatterns)44 TEST(GlobList, TwoSimplePatterns) {
45 GlobList Filter("aaa,bbb");
46
47 EXPECT_TRUE(Filter.contains("aaa"));
48 EXPECT_TRUE(Filter.contains("bbb"));
49 EXPECT_FALSE(Filter.contains(""));
50 EXPECT_FALSE(Filter.contains("aa"));
51 EXPECT_FALSE(Filter.contains("aaaa"));
52 EXPECT_FALSE(Filter.contains("bbbb"));
53 }
54
TEST(GlobList,PatternPriority)55 TEST(GlobList, PatternPriority) {
56 // The last glob that matches the string decides whether that string is
57 // included or excluded.
58 {
59 GlobList Filter("a*,-aaa");
60
61 EXPECT_FALSE(Filter.contains(""));
62 EXPECT_TRUE(Filter.contains("a"));
63 EXPECT_TRUE(Filter.contains("aa"));
64 EXPECT_FALSE(Filter.contains("aaa"));
65 EXPECT_TRUE(Filter.contains("aaaa"));
66 }
67 {
68 GlobList Filter("-aaa,a*");
69
70 EXPECT_FALSE(Filter.contains(""));
71 EXPECT_TRUE(Filter.contains("a"));
72 EXPECT_TRUE(Filter.contains("aa"));
73 EXPECT_TRUE(Filter.contains("aaa"));
74 EXPECT_TRUE(Filter.contains("aaaa"));
75 }
76 }
77
TEST(GlobList,WhitespacesAtBegin)78 TEST(GlobList, WhitespacesAtBegin) {
79 GlobList Filter("-*, a.b.*");
80
81 EXPECT_TRUE(Filter.contains("a.b.c"));
82 EXPECT_FALSE(Filter.contains("b.c"));
83 }
84
TEST(GlobList,Complex)85 TEST(GlobList, Complex) {
86 GlobList Filter("*,-a.*, -b.*, \r \n a.1.* ,-a.1.A.*,-..,-...,-..+,-*$, -*qwe* ");
87
88 EXPECT_TRUE(Filter.contains("aaa"));
89 EXPECT_TRUE(Filter.contains("qqq"));
90 EXPECT_FALSE(Filter.contains("a."));
91 EXPECT_FALSE(Filter.contains("a.b"));
92 EXPECT_FALSE(Filter.contains("b."));
93 EXPECT_FALSE(Filter.contains("b.b"));
94 EXPECT_TRUE(Filter.contains("a.1.b"));
95 EXPECT_FALSE(Filter.contains("a.1.A.a"));
96 EXPECT_FALSE(Filter.contains("qwe"));
97 EXPECT_FALSE(Filter.contains("asdfqweasdf"));
98 EXPECT_TRUE(Filter.contains("asdfqwEasdf"));
99 }
100
101 } // namespace tidy
102 } // namespace clang
103