1 /*
2 * Unit tests for src/fs/
3 */
4
5 #include "config.h"
6 #include "fs/Glob.hxx"
7
8 #include <gtest/gtest.h>
9
10 #ifdef HAVE_CLASS_GLOB
11
TEST(Glob,Basic)12 TEST(Glob, Basic)
13 {
14 const Glob glob("foo");
15 EXPECT_TRUE(glob.Check("foo"));
16 EXPECT_FALSE(glob.Check("fooo"));
17 EXPECT_FALSE(glob.Check("_foo"));
18 EXPECT_FALSE(glob.Check("a/foo"));
19 EXPECT_FALSE(glob.Check(""));
20 EXPECT_FALSE(glob.Check("*"));
21 }
22
TEST(Glob,Asterisk)23 TEST(Glob, Asterisk)
24 {
25 const Glob glob("*");
26 EXPECT_TRUE(glob.Check("foo"));
27 EXPECT_TRUE(glob.Check("bar"));
28 EXPECT_TRUE(glob.Check("*"));
29 EXPECT_TRUE(glob.Check("?"));
30 }
31
TEST(Glob,QuestionMark)32 TEST(Glob, QuestionMark)
33 {
34 const Glob glob("foo?bar");
35 EXPECT_TRUE(glob.Check("foo_bar"));
36 EXPECT_TRUE(glob.Check("foo?bar"));
37 EXPECT_TRUE(glob.Check("foo bar"));
38 EXPECT_FALSE(glob.Check("foobar"));
39 EXPECT_FALSE(glob.Check("foo__bar"));
40 }
41
TEST(Glob,Wildcard)42 TEST(Glob, Wildcard)
43 {
44 const Glob glob("foo*bar");
45 EXPECT_TRUE(glob.Check("foo_bar"));
46 EXPECT_TRUE(glob.Check("foo?bar"));
47 EXPECT_TRUE(glob.Check("foo bar"));
48 EXPECT_TRUE(glob.Check("foobar"));
49 EXPECT_TRUE(glob.Check("foo__bar"));
50 EXPECT_FALSE(glob.Check("_foobar"));
51 EXPECT_FALSE(glob.Check("foobar_"));
52 }
53
TEST(Glob,PrefixWildcard)54 TEST(Glob, PrefixWildcard)
55 {
56 const Glob glob("*bar");
57 EXPECT_TRUE(glob.Check("foo_bar"));
58 EXPECT_TRUE(glob.Check("foo?bar"));
59 EXPECT_TRUE(glob.Check("foo bar"));
60 EXPECT_TRUE(glob.Check("foobar"));
61 EXPECT_TRUE(glob.Check("foo__bar"));
62 EXPECT_TRUE(glob.Check("_foobar"));
63 EXPECT_TRUE(glob.Check("bar"));
64 EXPECT_FALSE(glob.Check("foobar_"));
65 }
66
TEST(Glob,SuffixWildcard)67 TEST(Glob, SuffixWildcard)
68 {
69 const Glob glob("foo*");
70 EXPECT_TRUE(glob.Check("foo_bar"));
71 EXPECT_TRUE(glob.Check("foo?bar"));
72 EXPECT_TRUE(glob.Check("foo bar"));
73 EXPECT_TRUE(glob.Check("foobar"));
74 EXPECT_TRUE(glob.Check("foo__bar"));
75 EXPECT_TRUE(glob.Check("foobar_"));
76 EXPECT_TRUE(glob.Check("foo"));
77 }
78
79 #endif
80