• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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