aboutsummaryrefslogtreecommitdiff
path: root/test/src/str/test_ft_fnmatch.c
blob: f7dc892e7c325b6625ab5cd3644800724a6ab097 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include "libft_test.h"

TEST_GROUP(ft_fnmatch);

TEST_SETUP(ft_fnmatch)
{}

TEST_TEAR_DOWN(ft_fnmatch)
{}

TEST(ft_fnmatch, basic)
{
	TEST_ASSERT_TRUE(ft_fnmatch("", ""));
	TEST_ASSERT_TRUE(ft_fnmatch("l", "l"));
	TEST_ASSERT_TRUE(ft_fnmatch("kl", "kl"));
	TEST_ASSERT_TRUE(ft_fnmatch("jkl", "jkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("ijkl", "ijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("hijkl", "hijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("ghijkl", "ghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("fghijkl", "fghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("efghijkl", "efghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("defghijkl", "defghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("cdefghijkl", "cdefghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("bcdefghijkl", "bcdefghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("abcdefghijkl", "abcdefghijkl"));

	TEST_ASSERT_FALSE(ft_fnmatch("", "a"));
	TEST_ASSERT_FALSE(ft_fnmatch("", "ab"));
	TEST_ASSERT_FALSE(ft_fnmatch("", "abc"));
	TEST_ASSERT_FALSE(ft_fnmatch("a", "ab"));
	TEST_ASSERT_FALSE(ft_fnmatch("ab", "abc"));
	TEST_ASSERT_FALSE(ft_fnmatch("a", ""));
	TEST_ASSERT_FALSE(ft_fnmatch("ab", ""));
	TEST_ASSERT_FALSE(ft_fnmatch("abc", ""));
	TEST_ASSERT_FALSE(ft_fnmatch("ab", "a"));
	TEST_ASSERT_FALSE(ft_fnmatch("abc", "ab"));

	TEST_ASSERT_TRUE(ft_fnmatch("*", ""));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "l"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "kl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "jkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "ijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "hijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "ghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "fghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "efghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "defghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "cdefghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "bcdefghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("*", "abcdefghijkl"));

	TEST_ASSERT_TRUE(ft_fnmatch("*.c", ".c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "l.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "kl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "jkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "ijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "hijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "ghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "fghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "efghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "defghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "cdefghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "bcdefghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.c", "abcdefghijkl.c"));

	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../l"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../kl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../jkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../ijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../hijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../ghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../fghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../efghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../defghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../cdefghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../bcdefghijkl"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*", "../abcdefghijkl"));

	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../l.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../kl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../jkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../ijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../hijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../ghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../fghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../efghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../defghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../cdefghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../bcdefghijkl.c"));
	TEST_ASSERT_TRUE(ft_fnmatch("../*.c", "../abcdefghijkl.c"));

	TEST_ASSERT_TRUE(ft_fnmatch("*.*", "."));
	TEST_ASSERT_TRUE(ft_fnmatch("*.*", "a.a"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.*", "ab.ab"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.*", "abc.abc"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.*", "abcd.abcd"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.*", "abcde.abcde"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.*", "abcdef.abcdef"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.*", "abcdefg.abcdefg"));
	TEST_ASSERT_TRUE(ft_fnmatch("*.*", "abcdefgh.abcdefgh"));

	TEST_ASSERT_FALSE(ft_fnmatch("*.c", ".h"));
	TEST_ASSERT_FALSE(ft_fnmatch("*.c", "a.h"));
	TEST_ASSERT_FALSE(ft_fnmatch("*.c", "ab.h"));
	TEST_ASSERT_FALSE(ft_fnmatch("*.c", "abc.h"));
	TEST_ASSERT_FALSE(ft_fnmatch("*.c", "abcd.h"));

	TEST_ASSERT_FALSE(ft_fnmatch("*.c", ".h"));
	TEST_ASSERT_FALSE(ft_fnmatch("*.c", "a.h"));
	TEST_ASSERT_FALSE(ft_fnmatch("*.c", "ab.h"));
	TEST_ASSERT_FALSE(ft_fnmatch("*.c", "abc.h"));
	TEST_ASSERT_FALSE(ft_fnmatch("*.c", "abcd.h"));

	TEST_ASSERT_TRUE(ft_fnmatch("da*da*da*", "daaadabadmanda"));
}