Move markup escape tests to test framework
authorMatthias Clasen <mclasen@redhat.com>
Tue, 27 Jul 2010 02:12:59 +0000 (22:12 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 30 Jul 2010 23:51:18 +0000 (19:51 -0400)
glib/tests/Makefile.am
glib/tests/markup-escape.c [new file with mode: 0644]
tests/Makefile.am
tests/markup-escape-test.c [deleted file]

index 3274c74..2537306 100644 (file)
@@ -127,6 +127,10 @@ dir_LDADD           = $(progs_ldadd)
 
 TEST_PROGS         += pattern
 pattern_LDADD       = $(progs_ldadd)
+
+TEST_PROGS         += markup-escape
+markup_escape_LDADD = $(progs_ldadd)
+
 if OS_UNIX
 
 # some testing of gtester funcitonality
diff --git a/glib/tests/markup-escape.c b/glib/tests/markup-escape.c
new file mode 100644 (file)
index 0000000..0cd90ef
--- /dev/null
@@ -0,0 +1,159 @@
+#undef G_DISABLE_ASSERT
+#undef G_LOG_DOMAIN
+
+#include <stdarg.h>
+#include <string.h>
+#include <glib.h>
+
+typedef struct _EscapeTest EscapeTest;
+
+struct _EscapeTest
+{
+  const gchar *original;
+  const gchar *expected;
+};
+
+static EscapeTest escape_tests[] =
+{
+  { "&", "&amp;" },
+  { "<", "&lt;" },
+  { ">", "&gt;" },
+  { "'", "&apos;" },
+  { "\"", "&quot;" },
+  { "", "" },
+  { "A", "A" },
+  { "A&", "A&amp;" },
+  { "&A", "&amp;A" },
+  { "A&A", "A&amp;A" },
+  { "&&A", "&amp;&amp;A" },
+  { "A&&", "A&amp;&amp;" },
+  { "A&&A", "A&amp;&amp;A" },
+  { "A&A&A", "A&amp;A&amp;A" },
+  { "A&#23;A", "A&amp;#23;A" },
+  { "A&#xa;A", "A&amp;#xa;A" }
+};
+
+static void
+escape_test (gconstpointer d)
+{
+  const EscapeTest *test = d;
+  gchar *result;
+
+  result = g_markup_escape_text (test->original, -1);
+
+  g_assert_cmpstr (result, ==, test->expected);
+
+  g_free (result);
+}
+
+typedef struct _UnicharTest UnicharTest;
+
+struct _UnicharTest
+{
+  gunichar c;
+  gboolean entity;
+};
+
+static UnicharTest unichar_tests[] =
+{
+  { 0x1, TRUE },
+  { 0x8, TRUE },
+  { 0x9, FALSE },
+  { 0xa, FALSE },
+  { 0xb, TRUE },
+  { 0xc, TRUE },
+  { 0xd, FALSE },
+  { 0xe, TRUE },
+  { 0x1f, TRUE },
+  { 0x20, FALSE },
+  { 0x7e, FALSE },
+  { 0x7f, TRUE },
+  { 0x84, TRUE },
+  { 0x85, FALSE },
+  { 0x86, TRUE },
+  { 0x9f, TRUE },
+  { 0xa0, FALSE }
+};
+
+static void
+unichar_test (gconstpointer d)
+{
+  const UnicharTest *test = d;
+  EscapeTest t;
+  gint len;
+  gchar outbuf[7], expected[12];
+
+  len = g_unichar_to_utf8 (test->c, outbuf);
+  outbuf[len] = 0;
+
+  if (test->entity)
+    g_snprintf (expected, 12, "&#x%x;", test->c);
+  else
+    strcpy (expected, outbuf);
+
+  t.original = outbuf;
+  t.expected = expected;
+  escape_test (&t);
+}
+
+static void
+test_format (const gchar *format,
+            const gchar *expected,
+            ...)
+{
+  gchar *result;
+  va_list args;
+
+  va_start (args, expected);
+  result = g_markup_vprintf_escaped (format, args);
+  va_end (args);
+
+  g_assert_cmpstr (result, ==, expected);
+
+  g_free (result);
+}
+
+static void
+format_test (void)
+{
+  test_format ("A", "A");
+  test_format ("A%s", "A&amp;", "&");
+  test_format ("%sA", "&amp;A", "&");
+  test_format ("A%sA", "A&amp;A", "&");
+  test_format ("%s%sA", "&amp;&amp;A", "&", "&");
+  test_format ("A%s%s", "A&amp;&amp;", "&", "&");
+  test_format ("A%s%sA", "A&amp;&amp;A", "&", "&");
+  test_format ("A%sA%sA", "A&amp;A&amp;A", "&", "&");
+  test_format ("%s", "&lt;B&gt;&amp;", "<B>&");
+  test_format ("%c%c", "&lt;&amp;", '<', '&');
+  test_format (".%c.%c.", ".&lt;.&amp;.", '<', '&');
+  test_format ("%s", "", "");
+  test_format ("%-5s", "A    ", "A");
+  test_format ("%2$s%1$s", "B.A.", "A.", "B.");
+}
+
+int main (int argc, char **argv)
+{
+  gint i;
+  gchar *path;
+
+  g_test_init (&argc, &argv, NULL);
+
+  for (i = 0; i < G_N_ELEMENTS (escape_tests); i++)
+    {
+      path = g_strdup_printf ("/markup/escape-text/%d", i);
+      g_test_add_data_func (path, &escape_tests[i], escape_test);
+      g_free (path);
+    }
+
+  for (i = 0; i < G_N_ELEMENTS (unichar_tests); i++)
+    {
+      path = g_strdup_printf ("/markup/escape-unichar/%d", i);
+      g_test_add_data_func (path, &unichar_tests[i], unichar_test);
+      g_free (path);
+    }
+
+  g_test_add_func ("/markup/format", format_test);
+
+  return g_test_run ();
+}
index bde34d6..49496b2 100644 (file)
@@ -96,7 +96,6 @@ test_programs =                                       \
        mainloop-test                           \
        mapping-test                            \
        markup-collect                          \
-       markup-escape-test                      \
        module-test                             \
        onceinit                                \
        asyncqueue-test                         \
@@ -145,7 +144,6 @@ list_test_LDADD = $(progs_ldadd)
 mainloop_test_LDADD = $(thread_ldadd)
 markup_test_LDADD = $(progs_ldadd)
 mapping_test_LDADD = $(progs_ldadd)
-markup_escape_test_LDADD = $(progs_ldadd)
 module_test_LDADD = $(module_ldadd) $(module_test_exp)
 module_test_LDFLAGS = $(G_MODULE_LDFLAGS)
 onceinit_LDADD = $(thread_ldadd)
@@ -167,7 +165,6 @@ type_test_LDADD = $(progs_ldadd)
 unicode_encoding_LDADD = $(progs_ldadd)
 unicode_caseconv_LDADD = $(progs_ldadd)
 unicode_collate_LDADD = $(progs_ldadd)
-markup_collect_LDADD = $(progs_ldadd)
 
 noinst_LTLIBRARIES = libmoduletestplugin_a.la libmoduletestplugin_b.la
 
diff --git a/tests/markup-escape-test.c b/tests/markup-escape-test.c
deleted file mode 100644 (file)
index 2734162..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-#undef G_DISABLE_ASSERT
-#undef G_LOG_DOMAIN
-
-#include <stdarg.h>
-#include <string.h>
-#include <glib.h>
-
-static void test_format (const gchar *format,
-                        const gchar *expected, ...) G_GNUC_PRINTF (1, 3);
-
-static gboolean error = FALSE;
-
-static void
-test (const gchar *original,
-      const gchar *expected)
-{
-  gchar *result = g_markup_escape_text (original, -1);
-
-  if (strcmp (result, expected) != 0)
-    {
-      g_printerr ("g_markup_escape_text(): expected '%s', got '%s'\n",
-                 expected, result);
-      error = TRUE;
-    }
-
-  g_free (result);
-}
-
-static void
-test_unichar (gunichar c, 
-              gboolean entity)
-{
-  gint len;
-  gchar outbuf[7], expected[12];
-
-  len = g_unichar_to_utf8 (c, outbuf);
-  outbuf[len] = 0;
-
-  if (entity)
-    g_snprintf (expected, 12, "&#x%x;", c);
-  else
-    strcpy (expected, outbuf);
-
-  test (outbuf, expected);
-}
-
-static void
-test_format (const gchar *format,
-            const gchar *expected,
-            ...)
-{
-  gchar *result;
-  
-  va_list args;
-  
-  va_start (args, expected);
-  result = g_markup_vprintf_escaped (format, args);
-  va_end (args);
-
-  if (strcmp (result, expected) != 0)
-    {
-      g_printerr ("g_markup_printf_escaped(): expected '%s', got '%s'\n",
-                 expected, result);
-      error = TRUE;
-    }
-
-  g_free (result);
-}
-
-int main (int argc, char **argv)
-{
-  /* Tests for g_markup_escape_text() */
-  test ("&", "&amp;");
-  test ("<", "&lt;");
-  test (">", "&gt;");
-  test ("'", "&apos;");
-  test ("\"", "&quot;");
-  
-  test ("", "");
-  test ("A", "A");
-  test ("A&", "A&amp;");
-  test ("&A", "&amp;A");
-  test ("A&A", "A&amp;A");
-  test ("&&A", "&amp;&amp;A");
-  test ("A&&", "A&amp;&amp;");
-  test ("A&&A", "A&amp;&amp;A");
-  test ("A&A&A", "A&amp;A&amp;A");
-  test ("A&#23;A", "A&amp;#23;A");
-  test ("A&#xa;A", "A&amp;#xa;A");
-  test_unichar (0x1, TRUE);
-  test_unichar (0x8, TRUE);
-  test_unichar (0x9, FALSE);
-  test_unichar (0xa, FALSE);
-  test_unichar (0xb, TRUE);
-  test_unichar (0xc, TRUE);
-  test_unichar (0xd, FALSE);
-  test_unichar (0xe, TRUE);
-  test_unichar (0x1f, TRUE);
-  test_unichar (0x20, FALSE);
-  test_unichar (0x7e, FALSE);
-  test_unichar (0x7f, TRUE);
-  test_unichar (0x84, TRUE);
-  test_unichar (0x85, FALSE);
-  test_unichar (0x86, TRUE);
-  test_unichar (0x9f, TRUE);
-  test_unichar (0xa0, FALSE);
-  
-  /* Tests for g_markup_printf_escaped() */
-  test_format ("A", "A");
-  test_format ("A%s", "A&amp;", "&");
-  test_format ("%sA", "&amp;A", "&");
-  test_format ("A%sA", "A&amp;A", "&");
-  test_format ("%s%sA", "&amp;&amp;A", "&", "&");
-  test_format ("A%s%s", "A&amp;&amp;", "&", "&");
-  test_format ("A%s%sA", "A&amp;&amp;A", "&", "&");
-  test_format ("A%sA%sA", "A&amp;A&amp;A", "&", "&");
-  
-  test_format ("%s", "&lt;B&gt;&amp;",
-              "<B>&");
-  test_format ("%c%c", "&lt;&amp;",
-              '<', '&');
-  test_format (".%c.%c.", ".&lt;.&amp;.",
-              '<', '&');
-  test_format ("%s", "",
-              "");
-  test_format ("%-5s", "A    ",
-              "A");
-  test_format ("%2$s%1$s", "B.A.",
-              "A.", "B.");
-  
-  return error ? 1 : 0;
-}