Move doc comments inline.
[glib.git] / tests / markup-escape-test.c
blob667d4dc960e32d5361489272d1b3f65d8a6a01b4
1 #undef G_DISABLE_ASSERT
2 #undef G_LOG_DOMAIN
4 #include <stdarg.h>
5 #include <string.h>
6 #include <glib.h>
8 static void test_format (const gchar *format,
9 const gchar *expected, ...) G_GNUC_PRINTF (1, 3);
11 static gboolean error = FALSE;
13 static void
14 test (const gchar *original,
15 const gchar *expected)
17 gchar *result = g_markup_escape_text (original, -1);
19 if (strcmp (result, expected) != 0)
21 g_printerr ("g_markup_escape_text(): expected '%s', got '%s'\n",
22 expected, result);
23 error = TRUE;
26 g_free (result);
29 static void
30 test_format (const gchar *format,
31 const gchar *expected,
32 ...)
34 gchar *result;
36 va_list args;
38 va_start (args, expected);
39 result = g_markup_vprintf_escaped (format, args);
40 va_end (args);
42 if (strcmp (result, expected) != 0)
44 g_printerr ("g_markup_printf_escaped(): expected '%s', got '%s'\n",
45 expected, result);
46 error = TRUE;
49 g_free (result);
52 int main (int argc, char **argv)
54 /* Tests for g_markup_escape_text() */
55 test ("&", "&amp;");
56 test ("<", "&lt;");
57 test (">", "&gt;");
58 test ("'", "&apos;");
59 test ("\"", "&quot;");
61 test ("", "");
62 test ("A", "A");
63 test ("A&", "A&amp;");
64 test ("&A", "&amp;A");
65 test ("A&A", "A&amp;A");
66 test ("&&A", "&amp;&amp;A");
67 test ("A&&", "A&amp;&amp;");
68 test ("A&&A", "A&amp;&amp;A");
69 test ("A&A&A", "A&amp;A&amp;A");
71 /* Tests for g_markup_printf_escaped() */
72 test_format ("A", "A");
73 test_format ("A%s", "A&amp;", "&");
74 test_format ("%sA", "&amp;A", "&");
75 test_format ("A%sA", "A&amp;A", "&");
76 test_format ("%s%sA", "&amp;&amp;A", "&", "&");
77 test_format ("A%s%s", "A&amp;&amp;", "&", "&");
78 test_format ("A%s%sA", "A&amp;&amp;A", "&", "&");
79 test_format ("A%sA%sA", "A&amp;A&amp;A", "&", "&");
81 test_format ("%s", "&lt;B&gt;&amp;",
82 "<B>&");
83 test_format ("%c%c", "&lt;&amp;",
84 '<', '&');
85 test_format (".%c.%c.", ".&lt;.&amp;.",
86 '<', '&');
87 test_format ("%s", "",
88 "");
89 test_format ("%-5s", "A ",
90 "A");
91 test_format ("%2$s%1$s", "B.A.",
92 "A.", "B.");
94 return error ? 1 : 0;