61291b9deff7e38c357a29c3e62140e54f35fd44
1 /* Initial author: Peter Moulder.
2 Hereby released into the Public Domain. */
4 #include <functional>
5 #include "utest/test-1ary-cases.h"
7 /* mental disclaims all responsibility for this evil idea for testing
8 static functions. The main disadvantages are that we retain any
9 #define's and `using' directives of the included file. */
10 #include "quote.cpp"
12 struct streq_free2 {
13 bool operator()(char const *exp, char *got)
14 {
15 bool const ret = (strcmp(exp, got) == 0);
16 g_free(got);
17 return ret;
18 }
19 };
21 static bool
22 test_xml_quoted_strlen()
23 {
24 utest_start("xml_quoted_strlen");
25 struct Case1<char const *, size_t> cases[] = {
26 {"", 0},
27 {"x", 1},
28 {"Foo", 3},
29 {"\"", 6},
30 {"&", 5},
31 {"<", 4},
32 {">", 4},
33 {"a\"b", 8},
34 {"a\"b<c>d;!@#$%^*(\\)?", 30}
35 };
36 test_1ary_cases<size_t, char const *, size_t, std::equal_to<size_t> >("xml_quoted_strlen",
37 xml_quoted_strlen,
38 G_N_ELEMENTS(cases),
39 cases);
40 return utest_end();
41 }
43 static bool
44 test_xml_quote_strdup()
45 {
46 utest_start("xml_quote_strdup");
47 struct Case1<char const *, char const *> cases[] = {
48 {"", ""},
49 {"x", "x"},
50 {"Foo", "Foo"},
51 {"\"", """},
52 {"&", "&"},
53 {"<", "<"},
54 {">", ">"},
55 {"a\"b<c>d;!@#$%^*(\\)?", "a"b<c>d;!@#$%^*(\\)?"}
56 };
57 test_1ary_cases<char *, char const *, char const *, streq_free2>("xml_quote_strdup",
58 xml_quote_strdup,
59 G_N_ELEMENTS(cases),
60 cases);
61 return utest_end();
62 }
64 int main() {
65 bool const succ = (test_xml_quoted_strlen()
66 && test_xml_quote_strdup());
67 return ( succ
68 ? EXIT_SUCCESS
69 : EXIT_FAILURE );
70 }
73 /*
74 Local Variables:
75 mode:c++
76 c-file-style:"stroustrup"
77 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
78 indent-tabs-mode:nil
79 fill-column:99
80 End:
81 */
82 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :