This source file includes following definitions.
- test_which
- setup
- teardown
- START_PARAMETRIZED_TEST
- main
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 #define TEST_SUITE_NAME "/lib/vfs"
27
28 #include "tests/mctest.h"
29
30 #include "lib/strutil.h"
31 #include "lib/vfs/xdirentry.h"
32 #include "lib/vfs/vfs.c"
33
34 #include "src/vfs/local/local.c"
35
36 static struct vfs_class vfs_test_ops1, vfs_test_ops2, vfs_test_ops3;
37
38
39
40 static int
41 test_which (struct vfs_class *me, const char *path)
42 {
43 (void) me;
44
45 if ((strcmp (path, "test_1:") == 0) || (strcmp (path, "test_2:") == 0)
46 || (strcmp (path, "test_3:") == 0) || (strcmp (path, "test_4:") == 0))
47 return 1;
48 return -1;
49 }
50
51
52
53
54 static void
55 setup (void)
56 {
57 str_init_strings (NULL);
58
59 vfs_init ();
60 vfs_init_localfs ();
61 vfs_setup_work_dir ();
62
63 vfs_init_class (&vfs_test_ops1, "testfs1", VFSF_NOLINKS | VFSF_REMOTE, "test1");
64 vfs_test_ops1.which = test_which;
65 vfs_register_class (&vfs_test_ops1);
66
67 vfs_init_class (&vfs_test_ops2, "testfs2", VFSF_UNKNOWN, "test2");
68 vfs_register_class (&vfs_test_ops2);
69
70 vfs_init_class (&vfs_test_ops3, "testfs3", VFSF_UNKNOWN, "test3");
71 vfs_register_class (&vfs_test_ops3);
72 }
73
74
75
76
77 static void
78 teardown (void)
79 {
80 vfs_shut ();
81 str_uninit_strings ();
82 }
83
84
85
86
87 static const struct test_vfs_prefix_to_class_ds
88 {
89 const char *input_string;
90 const struct vfs_class *expected_result;
91 } test_vfs_prefix_to_class_ds[] = {
92 {
93
94 "test_1:",
95 &vfs_test_ops1,
96 },
97 {
98
99 "test_2:",
100 &vfs_test_ops1,
101 },
102 {
103
104 "test_3:",
105 &vfs_test_ops1,
106 },
107 {
108
109 "test_4:",
110 &vfs_test_ops1,
111 },
112 {
113
114 "test2:",
115 &vfs_test_ops2,
116 },
117 {
118
119 "test3:",
120 &vfs_test_ops3,
121 },
122 {
123 "test1:",
124 NULL,
125 },
126 {
127
128 "test_5:",
129 NULL,
130 },
131 {
132
133 "test4:",
134 NULL,
135 },
136 };
137
138
139 START_PARAMETRIZED_TEST (test_vfs_prefix_to_class, test_vfs_prefix_to_class_ds)
140 {
141
142 struct vfs_class *actual_result;
143
144
145 actual_result = vfs_prefix_to_class ((char *) data->input_string);
146
147
148 mctest_assert_ptr_eq (actual_result, data->expected_result);
149 }
150 END_PARAMETRIZED_TEST
151
152
153
154 int
155 main (void)
156 {
157 TCase *tc_core;
158
159 tc_core = tcase_create ("Core");
160
161 tcase_add_checked_fixture (tc_core, setup, teardown);
162
163
164 mctest_add_parameterized_test (tc_core, test_vfs_prefix_to_class, test_vfs_prefix_to_class_ds);
165
166
167 return mctest_run_all (tc_core);
168 }
169
170