#include "GlobList.h" #include "gtest/gtest.h" namespace clang { namespace tidy { TEST(GlobList, Empty) { GlobList Filter(""); EXPECT_TRUE(Filter.contains("")); EXPECT_FALSE(Filter.contains("aaa")); } TEST(GlobList, Nothing) { GlobList Filter("-*"); EXPECT_FALSE(Filter.contains("")); EXPECT_FALSE(Filter.contains("a")); EXPECT_FALSE(Filter.contains("-*")); EXPECT_FALSE(Filter.contains("-")); EXPECT_FALSE(Filter.contains("*")); } TEST(GlobList, Everything) { GlobList Filter("*"); EXPECT_TRUE(Filter.contains("")); EXPECT_TRUE(Filter.contains("aaaa")); EXPECT_TRUE(Filter.contains("-*")); EXPECT_TRUE(Filter.contains("-")); EXPECT_TRUE(Filter.contains("*")); } TEST(GlobList, OneSimplePattern) { GlobList Filter("aaa"); EXPECT_TRUE(Filter.contains("aaa")); EXPECT_FALSE(Filter.contains("")); EXPECT_FALSE(Filter.contains("aa")); EXPECT_FALSE(Filter.contains("aaaa")); 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.*"); EXPECT_TRUE(Filter.contains("a.b.c")); EXPECT_FALSE(Filter.contains("b.c")); } TEST(GlobList, Complex) { GlobList Filter("*,-a.*, -b.*, \r \n a.1.* ,-a.1.A.*,-..,-...,-..+,-*$, -*qwe* "); EXPECT_TRUE(Filter.contains("aaa")); EXPECT_TRUE(Filter.contains("qqq")); EXPECT_FALSE(Filter.contains("a.")); EXPECT_FALSE(Filter.contains("a.b")); EXPECT_FALSE(Filter.contains("b.")); EXPECT_FALSE(Filter.contains("b.b")); EXPECT_TRUE(Filter.contains("a.1.b")); EXPECT_FALSE(Filter.contains("a.1.A.a")); EXPECT_FALSE(Filter.contains("qwe")); EXPECT_FALSE(Filter.contains("asdfqweasdf")); EXPECT_TRUE(Filter.contains("asdfqwEasdf")); } } // namespace tidy } // namespace clang