This source file includes following definitions.
- 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/search/regex"
27
28 #include "tests/mctest.h"
29
30 #include "regex.c"
31
32
33 #define test_helper_check_valid_data(a, b, c, d, e, f) \
34 { \
35 ck_assert_msg (a == b, "ret_value != %s", (b) ? "TRUE" : "FALSE"); \
36 ck_assert_msg (c == d, "skip_len(%d) != %d", c, d); \
37 if (f != 0) \
38 ck_assert_msg (e == f, "ret(%d) != %d", e, f); \
39 }
40
41 #define test_helper_handle_esc_seq(pos, r, skip, flag) \
42 { \
43 skip_len = 0; \
44 test_helper_check_valid_data ( \
45 mc_search_regex__replace_handle_esc_seq (replace_str, pos, &skip_len, &ret), r, \
46 skip_len, skip, ret, flag); \
47 }
48
49
50
51
52 static const struct test_regex_replace_esc_seq_prepare_ds
53 {
54 const char *input_string;
55 const size_t input_pos;
56
57 const gboolean expected_result;
58 const gsize expected_skipped_len;
59 const int expected_flags;
60 } test_regex_replace_esc_seq_prepare_ds[] = {
61 {
62
63 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
64 7,
65 FALSE,
66 6,
67 REPLACE_PREPARE_T_ESCAPE_SEQ,
68 },
69 {
70
71 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
72 20,
73 FALSE,
74 4,
75 REPLACE_PREPARE_T_ESCAPE_SEQ,
76 },
77 {
78
79 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
80 36,
81 FALSE,
82 11,
83 REPLACE_PREPARE_T_ESCAPE_SEQ,
84 },
85 {
86
87 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
88 54,
89 FALSE,
90 2,
91 REPLACE_PREPARE_T_NOTHING_SPECIAL,
92 },
93 {
94
95 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
96 59,
97 FALSE,
98 2,
99 REPLACE_PREPARE_T_ESCAPE_SEQ,
100 },
101 {
102
103 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
104 61,
105 FALSE,
106 2,
107 REPLACE_PREPARE_T_ESCAPE_SEQ,
108 },
109 {
110
111 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
112 63,
113 FALSE,
114 2,
115 REPLACE_PREPARE_T_ESCAPE_SEQ,
116 },
117 {
118
119 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
120 65,
121 FALSE,
122 2,
123 REPLACE_PREPARE_T_ESCAPE_SEQ,
124 },
125 {
126
127 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
128 67,
129 FALSE,
130 2,
131 REPLACE_PREPARE_T_ESCAPE_SEQ,
132 },
133 {
134
135 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
136 69,
137 FALSE,
138 2,
139 REPLACE_PREPARE_T_ESCAPE_SEQ,
140 },
141 {
142
143 "bla-bla\\{123}bla-bla\\xabc234 bla-bla\\x{456abcd}bla-bla\\xtre\\n\\t\\v\\b\\r\\f\\a",
144 71,
145 FALSE,
146 2,
147 REPLACE_PREPARE_T_ESCAPE_SEQ,
148 },
149 {
150
151 "\\{123 \\x{qwerty} \\12} \\x{456a-bcd}bla-bla\\satre",
152 0,
153 TRUE,
154 5,
155 REPLACE_PREPARE_T_NOTHING_SPECIAL,
156 },
157 {
158
159 "\\{123 \\x{qwerty} \\12} \\x{456a-bcd}bla-bla\\satre",
160 6,
161 TRUE,
162 3,
163 REPLACE_PREPARE_T_NOTHING_SPECIAL,
164 },
165 {
166
167 "\\{123 \\x{qwerty} \\12} \\x{456a-bcd}bla-bla\\satre",
168 17,
169 TRUE,
170 0,
171 0,
172 },
173 {
174
175 "\\{123 \\x{qwerty} \\12} \\x{456a-bcd}bla-bla\\satre",
176 22,
177 TRUE,
178 7,
179 REPLACE_PREPARE_T_NOTHING_SPECIAL,
180 },
181 {
182
183 "\\{123 \\x{qwerty} \\12} \\x{456a-bcd}bla-bla\\satre",
184 41,
185 TRUE,
186 0,
187 0,
188 },
189 };
190
191
192 START_PARAMETRIZED_TEST (test_regex_replace_esc_seq_prepare, test_regex_replace_esc_seq_prepare_ds)
193 {
194
195 GString *replace_str;
196 gsize actual_skipped_len = 0;
197 int actual_flags = 0;
198 gboolean actual_result;
199
200 replace_str = g_string_new (data->input_string);
201
202
203 actual_result = mc_search_regex__replace_handle_esc_seq (replace_str, data->input_pos,
204 &actual_skipped_len, &actual_flags);
205
206
207 ck_assert_int_eq (actual_result, data->expected_result);
208 ck_assert_int_eq (actual_skipped_len, data->expected_skipped_len);
209 ck_assert_int_eq (actual_flags, data->expected_flags);
210
211 g_string_free (replace_str, TRUE);
212 }
213 END_PARAMETRIZED_TEST
214
215
216
217 int
218 main (void)
219 {
220 TCase *tc_core;
221
222 tc_core = tcase_create ("Core");
223
224
225 mctest_add_parameterized_test (tc_core, test_regex_replace_esc_seq_prepare,
226 test_regex_replace_esc_seq_prepare_ds);
227
228
229 return mctest_run_all (tc_core);
230 }
231
232