1*ee44dd6cSjmmv //
2*ee44dd6cSjmmv // Automated Testing Framework (atf)
3*ee44dd6cSjmmv //
4*ee44dd6cSjmmv // Copyright (c) 2009 The NetBSD Foundation, Inc.
5*ee44dd6cSjmmv // All rights reserved.
6*ee44dd6cSjmmv //
7*ee44dd6cSjmmv // Redistribution and use in source and binary forms, with or without
8*ee44dd6cSjmmv // modification, are permitted provided that the following conditions
9*ee44dd6cSjmmv // are met:
10*ee44dd6cSjmmv // 1. Redistributions of source code must retain the above copyright
11*ee44dd6cSjmmv // notice, this list of conditions and the following disclaimer.
12*ee44dd6cSjmmv // 2. Redistributions in binary form must reproduce the above copyright
13*ee44dd6cSjmmv // notice, this list of conditions and the following disclaimer in the
14*ee44dd6cSjmmv // documentation and/or other materials provided with the distribution.
15*ee44dd6cSjmmv //
16*ee44dd6cSjmmv // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
17*ee44dd6cSjmmv // CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
18*ee44dd6cSjmmv // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19*ee44dd6cSjmmv // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20*ee44dd6cSjmmv // IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
21*ee44dd6cSjmmv // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22*ee44dd6cSjmmv // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
23*ee44dd6cSjmmv // GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24*ee44dd6cSjmmv // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25*ee44dd6cSjmmv // IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26*ee44dd6cSjmmv // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27*ee44dd6cSjmmv // IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28*ee44dd6cSjmmv //
29*ee44dd6cSjmmv
30*ee44dd6cSjmmv #include <cstring>
31*ee44dd6cSjmmv #include <iostream>
32*ee44dd6cSjmmv
33*ee44dd6cSjmmv #include <atf-c++.hpp>
34*ee44dd6cSjmmv
35*ee44dd6cSjmmv #include "env.hpp"
36*ee44dd6cSjmmv #include "ui.hpp"
37*ee44dd6cSjmmv
38*ee44dd6cSjmmv // ------------------------------------------------------------------------
39*ee44dd6cSjmmv // Test cases for the free functions.
40*ee44dd6cSjmmv // ------------------------------------------------------------------------
41*ee44dd6cSjmmv
42*ee44dd6cSjmmv struct test {
43*ee44dd6cSjmmv const char *tc;
44*ee44dd6cSjmmv const char *tag;
45*ee44dd6cSjmmv bool repeat;
46*ee44dd6cSjmmv size_t col;
47*ee44dd6cSjmmv const char *fmt;
48*ee44dd6cSjmmv const char *result;
49*ee44dd6cSjmmv } tests[] = {
50*ee44dd6cSjmmv //
51*ee44dd6cSjmmv // wo_tag
52*ee44dd6cSjmmv //
53*ee44dd6cSjmmv
54*ee44dd6cSjmmv {
55*ee44dd6cSjmmv "wo_tag",
56*ee44dd6cSjmmv "",
57*ee44dd6cSjmmv false,
58*ee44dd6cSjmmv 0,
59*ee44dd6cSjmmv "12345",
60*ee44dd6cSjmmv "12345",
61*ee44dd6cSjmmv },
62*ee44dd6cSjmmv
63*ee44dd6cSjmmv {
64*ee44dd6cSjmmv "wo_tag",
65*ee44dd6cSjmmv "",
66*ee44dd6cSjmmv false,
67*ee44dd6cSjmmv 0,
68*ee44dd6cSjmmv "12345 ",
69*ee44dd6cSjmmv "12345",
70*ee44dd6cSjmmv },
71*ee44dd6cSjmmv
72*ee44dd6cSjmmv {
73*ee44dd6cSjmmv "wo_tag",
74*ee44dd6cSjmmv "",
75*ee44dd6cSjmmv false,
76*ee44dd6cSjmmv 0,
77*ee44dd6cSjmmv "12345 7890",
78*ee44dd6cSjmmv "12345 7890",
79*ee44dd6cSjmmv },
80*ee44dd6cSjmmv
81*ee44dd6cSjmmv {
82*ee44dd6cSjmmv "wo_tag",
83*ee44dd6cSjmmv "",
84*ee44dd6cSjmmv false,
85*ee44dd6cSjmmv 0,
86*ee44dd6cSjmmv "12345 789012 45",
87*ee44dd6cSjmmv "12345 789012 45",
88*ee44dd6cSjmmv },
89*ee44dd6cSjmmv
90*ee44dd6cSjmmv {
91*ee44dd6cSjmmv "wo_tag",
92*ee44dd6cSjmmv "",
93*ee44dd6cSjmmv false,
94*ee44dd6cSjmmv 0,
95*ee44dd6cSjmmv "12345 789012 456",
96*ee44dd6cSjmmv "12345 789012\n456",
97*ee44dd6cSjmmv },
98*ee44dd6cSjmmv
99*ee44dd6cSjmmv {
100*ee44dd6cSjmmv "wo_tag",
101*ee44dd6cSjmmv "",
102*ee44dd6cSjmmv false,
103*ee44dd6cSjmmv 0,
104*ee44dd6cSjmmv "1234567890123456",
105*ee44dd6cSjmmv "1234567890123456",
106*ee44dd6cSjmmv },
107*ee44dd6cSjmmv
108*ee44dd6cSjmmv // TODO(jmmv): Fix the code to pass this test...
109*ee44dd6cSjmmv // {
110*ee44dd6cSjmmv // "wo_tag",
111*ee44dd6cSjmmv // "",
112*ee44dd6cSjmmv // false,
113*ee44dd6cSjmmv // 0,
114*ee44dd6cSjmmv // " 2345678901234567",
115*ee44dd6cSjmmv // "\n2345678901234567",
116*ee44dd6cSjmmv // },
117*ee44dd6cSjmmv
118*ee44dd6cSjmmv {
119*ee44dd6cSjmmv "wo_tag",
120*ee44dd6cSjmmv "",
121*ee44dd6cSjmmv false,
122*ee44dd6cSjmmv 0,
123*ee44dd6cSjmmv "12345 789012345 78",
124*ee44dd6cSjmmv "12345 789012345\n78",
125*ee44dd6cSjmmv },
126*ee44dd6cSjmmv
127*ee44dd6cSjmmv //
128*ee44dd6cSjmmv // wo_tag_col
129*ee44dd6cSjmmv //
130*ee44dd6cSjmmv
131*ee44dd6cSjmmv {
132*ee44dd6cSjmmv "wo_tag_col",
133*ee44dd6cSjmmv "",
134*ee44dd6cSjmmv false,
135*ee44dd6cSjmmv 10,
136*ee44dd6cSjmmv "12345",
137*ee44dd6cSjmmv " 12345",
138*ee44dd6cSjmmv },
139*ee44dd6cSjmmv
140*ee44dd6cSjmmv {
141*ee44dd6cSjmmv "wo_tag_col",
142*ee44dd6cSjmmv "",
143*ee44dd6cSjmmv false,
144*ee44dd6cSjmmv 10,
145*ee44dd6cSjmmv "12345 7890",
146*ee44dd6cSjmmv " 12345\n"
147*ee44dd6cSjmmv " 7890",
148*ee44dd6cSjmmv },
149*ee44dd6cSjmmv
150*ee44dd6cSjmmv {
151*ee44dd6cSjmmv "wo_tag_col",
152*ee44dd6cSjmmv "",
153*ee44dd6cSjmmv false,
154*ee44dd6cSjmmv 10,
155*ee44dd6cSjmmv "1 3 5 7 9",
156*ee44dd6cSjmmv " 1 3 5\n"
157*ee44dd6cSjmmv " 7 9",
158*ee44dd6cSjmmv },
159*ee44dd6cSjmmv
160*ee44dd6cSjmmv //
161*ee44dd6cSjmmv // w_tag_no_repeat
162*ee44dd6cSjmmv //
163*ee44dd6cSjmmv
164*ee44dd6cSjmmv {
165*ee44dd6cSjmmv "w_tag_no_repeat",
166*ee44dd6cSjmmv "1234: ",
167*ee44dd6cSjmmv false,
168*ee44dd6cSjmmv 0,
169*ee44dd6cSjmmv "789012345",
170*ee44dd6cSjmmv "1234: 789012345",
171*ee44dd6cSjmmv },
172*ee44dd6cSjmmv
173*ee44dd6cSjmmv {
174*ee44dd6cSjmmv "w_tag_no_repeat",
175*ee44dd6cSjmmv "1234: ",
176*ee44dd6cSjmmv false,
177*ee44dd6cSjmmv 0,
178*ee44dd6cSjmmv "789 1234 56789",
179*ee44dd6cSjmmv "1234: 789 1234\n"
180*ee44dd6cSjmmv " 56789",
181*ee44dd6cSjmmv },
182*ee44dd6cSjmmv
183*ee44dd6cSjmmv {
184*ee44dd6cSjmmv "w_tag_no_repeat",
185*ee44dd6cSjmmv "1234: ",
186*ee44dd6cSjmmv false,
187*ee44dd6cSjmmv 0,
188*ee44dd6cSjmmv "789012345",
189*ee44dd6cSjmmv "1234: 789012345",
190*ee44dd6cSjmmv },
191*ee44dd6cSjmmv
192*ee44dd6cSjmmv {
193*ee44dd6cSjmmv "w_tag_no_repeat",
194*ee44dd6cSjmmv "1234: ",
195*ee44dd6cSjmmv false,
196*ee44dd6cSjmmv 0,
197*ee44dd6cSjmmv "789012345 7890",
198*ee44dd6cSjmmv "1234: 789012345\n"
199*ee44dd6cSjmmv " 7890",
200*ee44dd6cSjmmv },
201*ee44dd6cSjmmv
202*ee44dd6cSjmmv //
203*ee44dd6cSjmmv // w_tag_repeat
204*ee44dd6cSjmmv //
205*ee44dd6cSjmmv
206*ee44dd6cSjmmv {
207*ee44dd6cSjmmv "w_tag_repeat",
208*ee44dd6cSjmmv "1234: ",
209*ee44dd6cSjmmv true,
210*ee44dd6cSjmmv 0,
211*ee44dd6cSjmmv "789012345",
212*ee44dd6cSjmmv "1234: 789012345",
213*ee44dd6cSjmmv },
214*ee44dd6cSjmmv
215*ee44dd6cSjmmv {
216*ee44dd6cSjmmv "w_tag_repeat",
217*ee44dd6cSjmmv "1234: ",
218*ee44dd6cSjmmv true,
219*ee44dd6cSjmmv 0,
220*ee44dd6cSjmmv "789 1234 56789",
221*ee44dd6cSjmmv "1234: 789 1234\n"
222*ee44dd6cSjmmv "1234: 56789",
223*ee44dd6cSjmmv },
224*ee44dd6cSjmmv
225*ee44dd6cSjmmv {
226*ee44dd6cSjmmv "w_tag_repeat",
227*ee44dd6cSjmmv "1234: ",
228*ee44dd6cSjmmv true,
229*ee44dd6cSjmmv 0,
230*ee44dd6cSjmmv "789012345",
231*ee44dd6cSjmmv "1234: 789012345",
232*ee44dd6cSjmmv },
233*ee44dd6cSjmmv
234*ee44dd6cSjmmv {
235*ee44dd6cSjmmv "w_tag_no_repeat",
236*ee44dd6cSjmmv "1234: ",
237*ee44dd6cSjmmv true,
238*ee44dd6cSjmmv 0,
239*ee44dd6cSjmmv "789012345 7890",
240*ee44dd6cSjmmv "1234: 789012345\n"
241*ee44dd6cSjmmv "1234: 7890",
242*ee44dd6cSjmmv },
243*ee44dd6cSjmmv
244*ee44dd6cSjmmv //
245*ee44dd6cSjmmv // w_tag_col
246*ee44dd6cSjmmv //
247*ee44dd6cSjmmv
248*ee44dd6cSjmmv {
249*ee44dd6cSjmmv "w_tag_col",
250*ee44dd6cSjmmv "1234:",
251*ee44dd6cSjmmv false,
252*ee44dd6cSjmmv 10,
253*ee44dd6cSjmmv "1 3 5",
254*ee44dd6cSjmmv "1234: 1 3 5",
255*ee44dd6cSjmmv },
256*ee44dd6cSjmmv
257*ee44dd6cSjmmv {
258*ee44dd6cSjmmv "w_tag_col",
259*ee44dd6cSjmmv "1234:",
260*ee44dd6cSjmmv false,
261*ee44dd6cSjmmv 10,
262*ee44dd6cSjmmv "1 3 5 7 9",
263*ee44dd6cSjmmv "1234: 1 3 5\n"
264*ee44dd6cSjmmv " 7 9",
265*ee44dd6cSjmmv },
266*ee44dd6cSjmmv
267*ee44dd6cSjmmv {
268*ee44dd6cSjmmv "w_tag_col",
269*ee44dd6cSjmmv "1234:",
270*ee44dd6cSjmmv true,
271*ee44dd6cSjmmv 10,
272*ee44dd6cSjmmv "1 3 5 7 9",
273*ee44dd6cSjmmv "1234: 1 3 5\n"
274*ee44dd6cSjmmv "1234: 7 9",
275*ee44dd6cSjmmv },
276*ee44dd6cSjmmv
277*ee44dd6cSjmmv //
278*ee44dd6cSjmmv // paragraphs
279*ee44dd6cSjmmv //
280*ee44dd6cSjmmv
281*ee44dd6cSjmmv {
282*ee44dd6cSjmmv "paragraphs",
283*ee44dd6cSjmmv "",
284*ee44dd6cSjmmv false,
285*ee44dd6cSjmmv 0,
286*ee44dd6cSjmmv "1 3 5\n\n",
287*ee44dd6cSjmmv "1 3 5"
288*ee44dd6cSjmmv },
289*ee44dd6cSjmmv
290*ee44dd6cSjmmv {
291*ee44dd6cSjmmv "paragraphs",
292*ee44dd6cSjmmv "",
293*ee44dd6cSjmmv false,
294*ee44dd6cSjmmv 0,
295*ee44dd6cSjmmv "1 3 5\n2 4 6",
296*ee44dd6cSjmmv "1 3 5\n\n2 4 6"
297*ee44dd6cSjmmv },
298*ee44dd6cSjmmv
299*ee44dd6cSjmmv {
300*ee44dd6cSjmmv "paragraphs",
301*ee44dd6cSjmmv "",
302*ee44dd6cSjmmv false,
303*ee44dd6cSjmmv 0,
304*ee44dd6cSjmmv "1234 6789 123456\n2 4 6",
305*ee44dd6cSjmmv "1234 6789\n123456\n\n2 4 6"
306*ee44dd6cSjmmv },
307*ee44dd6cSjmmv
308*ee44dd6cSjmmv {
309*ee44dd6cSjmmv "paragraphs",
310*ee44dd6cSjmmv "12: ",
311*ee44dd6cSjmmv false,
312*ee44dd6cSjmmv 0,
313*ee44dd6cSjmmv "56789 123456\n2 4 6",
314*ee44dd6cSjmmv "12: 56789\n 123456\n\n 2 4 6"
315*ee44dd6cSjmmv },
316*ee44dd6cSjmmv
317*ee44dd6cSjmmv {
318*ee44dd6cSjmmv "paragraphs",
319*ee44dd6cSjmmv "12: ",
320*ee44dd6cSjmmv true,
321*ee44dd6cSjmmv 0,
322*ee44dd6cSjmmv "56789 123456\n2 4 6",
323*ee44dd6cSjmmv "12: 56789\n12: 123456\n12: \n12: 2 4 6"
324*ee44dd6cSjmmv },
325*ee44dd6cSjmmv
326*ee44dd6cSjmmv {
327*ee44dd6cSjmmv "paragraphs",
328*ee44dd6cSjmmv "12:",
329*ee44dd6cSjmmv false,
330*ee44dd6cSjmmv 4,
331*ee44dd6cSjmmv "56789 123456\n2 4 6",
332*ee44dd6cSjmmv "12: 56789\n 123456\n\n 2 4 6"
333*ee44dd6cSjmmv },
334*ee44dd6cSjmmv
335*ee44dd6cSjmmv {
336*ee44dd6cSjmmv "paragraphs",
337*ee44dd6cSjmmv "12:",
338*ee44dd6cSjmmv true,
339*ee44dd6cSjmmv 4,
340*ee44dd6cSjmmv "56789 123456\n2 4 6",
341*ee44dd6cSjmmv "12: 56789\n12: 123456\n12:\n12: 2 4 6"
342*ee44dd6cSjmmv },
343*ee44dd6cSjmmv
344*ee44dd6cSjmmv //
345*ee44dd6cSjmmv // end
346*ee44dd6cSjmmv //
347*ee44dd6cSjmmv
348*ee44dd6cSjmmv {
349*ee44dd6cSjmmv NULL,
350*ee44dd6cSjmmv NULL,
351*ee44dd6cSjmmv false,
352*ee44dd6cSjmmv 0,
353*ee44dd6cSjmmv NULL,
354*ee44dd6cSjmmv NULL,
355*ee44dd6cSjmmv },
356*ee44dd6cSjmmv };
357*ee44dd6cSjmmv
358*ee44dd6cSjmmv static
359*ee44dd6cSjmmv void
run_tests(const char * tc)360*ee44dd6cSjmmv run_tests(const char *tc)
361*ee44dd6cSjmmv {
362*ee44dd6cSjmmv struct test *t;
363*ee44dd6cSjmmv
364*ee44dd6cSjmmv std::cout << "Running tests for " << tc << "\n";
365*ee44dd6cSjmmv
366*ee44dd6cSjmmv tools::env::set("COLUMNS", "15");
367*ee44dd6cSjmmv
368*ee44dd6cSjmmv for (t = &tests[0]; t->tc != NULL; t++) {
369*ee44dd6cSjmmv if (std::strcmp(t->tc, tc) == 0) {
370*ee44dd6cSjmmv std::cout << "\n";
371*ee44dd6cSjmmv std::cout << "Testing with tag '" << t->tag << "', '"
372*ee44dd6cSjmmv << (t->repeat ? "repeat" : "no repeat") << "', col "
373*ee44dd6cSjmmv << t->col << "\n";
374*ee44dd6cSjmmv std::cout << "Input: >>>" << t->fmt << "<<<\n";
375*ee44dd6cSjmmv std::cout << "Expected output: >>>" << t->result << "<<<\n";
376*ee44dd6cSjmmv
377*ee44dd6cSjmmv std::string result = tools::ui::format_text_with_tag(t->fmt, t->tag,
378*ee44dd6cSjmmv t->repeat, t->col);
379*ee44dd6cSjmmv std::cout << "Output : >>>" << result << "<<<\n";
380*ee44dd6cSjmmv ATF_REQUIRE_EQ(t->result, result);
381*ee44dd6cSjmmv }
382*ee44dd6cSjmmv }
383*ee44dd6cSjmmv }
384*ee44dd6cSjmmv
385*ee44dd6cSjmmv ATF_TEST_CASE(wo_tag);
ATF_TEST_CASE_HEAD(wo_tag)386*ee44dd6cSjmmv ATF_TEST_CASE_HEAD(wo_tag)
387*ee44dd6cSjmmv {
388*ee44dd6cSjmmv set_md_var("descr", "Checks formatting without tags");
389*ee44dd6cSjmmv }
ATF_TEST_CASE_BODY(wo_tag)390*ee44dd6cSjmmv ATF_TEST_CASE_BODY(wo_tag)
391*ee44dd6cSjmmv {
392*ee44dd6cSjmmv run_tests("wo_tag");
393*ee44dd6cSjmmv }
394*ee44dd6cSjmmv
395*ee44dd6cSjmmv ATF_TEST_CASE(wo_tag_col);
ATF_TEST_CASE_HEAD(wo_tag_col)396*ee44dd6cSjmmv ATF_TEST_CASE_HEAD(wo_tag_col)
397*ee44dd6cSjmmv {
398*ee44dd6cSjmmv set_md_var("descr", "Checks formatting without tags and with a non-zero "
399*ee44dd6cSjmmv "starting column");
400*ee44dd6cSjmmv }
ATF_TEST_CASE_BODY(wo_tag_col)401*ee44dd6cSjmmv ATF_TEST_CASE_BODY(wo_tag_col)
402*ee44dd6cSjmmv {
403*ee44dd6cSjmmv run_tests("wo_tag_col");
404*ee44dd6cSjmmv }
405*ee44dd6cSjmmv
406*ee44dd6cSjmmv ATF_TEST_CASE(w_tag_no_repeat);
ATF_TEST_CASE_HEAD(w_tag_no_repeat)407*ee44dd6cSjmmv ATF_TEST_CASE_HEAD(w_tag_no_repeat)
408*ee44dd6cSjmmv {
409*ee44dd6cSjmmv set_md_var("descr", "Checks formatting with a tag");
410*ee44dd6cSjmmv }
ATF_TEST_CASE_BODY(w_tag_no_repeat)411*ee44dd6cSjmmv ATF_TEST_CASE_BODY(w_tag_no_repeat)
412*ee44dd6cSjmmv {
413*ee44dd6cSjmmv run_tests("w_tag_no_repeat");
414*ee44dd6cSjmmv }
415*ee44dd6cSjmmv
416*ee44dd6cSjmmv ATF_TEST_CASE(w_tag_repeat);
ATF_TEST_CASE_HEAD(w_tag_repeat)417*ee44dd6cSjmmv ATF_TEST_CASE_HEAD(w_tag_repeat)
418*ee44dd6cSjmmv {
419*ee44dd6cSjmmv set_md_var("descr", "Checks formatting with a tag and repeating it on "
420*ee44dd6cSjmmv "each line");
421*ee44dd6cSjmmv }
ATF_TEST_CASE_BODY(w_tag_repeat)422*ee44dd6cSjmmv ATF_TEST_CASE_BODY(w_tag_repeat)
423*ee44dd6cSjmmv {
424*ee44dd6cSjmmv run_tests("w_tag_repeat");
425*ee44dd6cSjmmv }
426*ee44dd6cSjmmv
427*ee44dd6cSjmmv ATF_TEST_CASE(w_tag_col);
ATF_TEST_CASE_HEAD(w_tag_col)428*ee44dd6cSjmmv ATF_TEST_CASE_HEAD(w_tag_col)
429*ee44dd6cSjmmv {
430*ee44dd6cSjmmv set_md_var("descr", "Checks formatting with a tag and starting at a "
431*ee44dd6cSjmmv "column greater than its length");
432*ee44dd6cSjmmv }
ATF_TEST_CASE_BODY(w_tag_col)433*ee44dd6cSjmmv ATF_TEST_CASE_BODY(w_tag_col)
434*ee44dd6cSjmmv {
435*ee44dd6cSjmmv run_tests("w_tag_col");
436*ee44dd6cSjmmv }
437*ee44dd6cSjmmv
438*ee44dd6cSjmmv ATF_TEST_CASE(paragraphs);
ATF_TEST_CASE_HEAD(paragraphs)439*ee44dd6cSjmmv ATF_TEST_CASE_HEAD(paragraphs)
440*ee44dd6cSjmmv {
441*ee44dd6cSjmmv set_md_var("descr", "Checks formatting a string that contains multiple "
442*ee44dd6cSjmmv "paragraphs");
443*ee44dd6cSjmmv }
ATF_TEST_CASE_BODY(paragraphs)444*ee44dd6cSjmmv ATF_TEST_CASE_BODY(paragraphs)
445*ee44dd6cSjmmv {
446*ee44dd6cSjmmv run_tests("paragraphs");
447*ee44dd6cSjmmv }
448*ee44dd6cSjmmv
449*ee44dd6cSjmmv // ------------------------------------------------------------------------
450*ee44dd6cSjmmv // Main.
451*ee44dd6cSjmmv // ------------------------------------------------------------------------
452*ee44dd6cSjmmv
ATF_INIT_TEST_CASES(tcs)453*ee44dd6cSjmmv ATF_INIT_TEST_CASES(tcs)
454*ee44dd6cSjmmv {
455*ee44dd6cSjmmv // Add the test cases for the free functions.
456*ee44dd6cSjmmv ATF_ADD_TEST_CASE(tcs, wo_tag);
457*ee44dd6cSjmmv ATF_ADD_TEST_CASE(tcs, wo_tag_col);
458*ee44dd6cSjmmv ATF_ADD_TEST_CASE(tcs, w_tag_no_repeat);
459*ee44dd6cSjmmv ATF_ADD_TEST_CASE(tcs, w_tag_repeat);
460*ee44dd6cSjmmv ATF_ADD_TEST_CASE(tcs, w_tag_col);
461*ee44dd6cSjmmv ATF_ADD_TEST_CASE(tcs, paragraphs);
462*ee44dd6cSjmmv }
463