xref: /netbsd/external/bsd/atf/dist/tools/ui_test.cpp (revision ee44dd6c)
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