Move markup parse tests to the test framework
authorMatthias Clasen <mclasen@redhat.com>
Fri, 30 Jul 2010 00:52:31 +0000 (20:52 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 30 Jul 2010 23:51:21 +0000 (19:51 -0400)
105 files changed:
glib/tests/Makefile.am
glib/tests/markup-parse.c [new file with mode: 0644]
glib/tests/markups/fail-1.expected [new file with mode: 0644]
glib/tests/markups/fail-1.gmarkup [moved from tests/markups/fail-1.gmarkup with 100% similarity]
glib/tests/markups/fail-10.expected [new file with mode: 0644]
glib/tests/markups/fail-10.gmarkup [moved from tests/markups/fail-10.gmarkup with 100% similarity]
glib/tests/markups/fail-11.expected [new file with mode: 0644]
glib/tests/markups/fail-11.gmarkup [moved from tests/markups/fail-11.gmarkup with 100% similarity]
glib/tests/markups/fail-12.expected [new file with mode: 0644]
glib/tests/markups/fail-12.gmarkup [moved from tests/markups/fail-12.gmarkup with 100% similarity]
glib/tests/markups/fail-13.expected [new file with mode: 0644]
glib/tests/markups/fail-13.gmarkup [moved from tests/markups/fail-13.gmarkup with 100% similarity]
glib/tests/markups/fail-14.expected [new file with mode: 0644]
glib/tests/markups/fail-14.gmarkup [moved from tests/markups/fail-14.gmarkup with 100% similarity]
glib/tests/markups/fail-15.expected [new file with mode: 0644]
glib/tests/markups/fail-15.gmarkup [moved from tests/markups/fail-15.gmarkup with 100% similarity]
glib/tests/markups/fail-16.expected [new file with mode: 0644]
glib/tests/markups/fail-16.gmarkup [moved from tests/markups/fail-16.gmarkup with 100% similarity]
glib/tests/markups/fail-17.expected [new file with mode: 0644]
glib/tests/markups/fail-17.gmarkup [moved from tests/markups/fail-17.gmarkup with 100% similarity]
glib/tests/markups/fail-18.expected [new file with mode: 0644]
glib/tests/markups/fail-18.gmarkup [moved from tests/markups/fail-18.gmarkup with 100% similarity]
glib/tests/markups/fail-19.expected [new file with mode: 0644]
glib/tests/markups/fail-19.gmarkup [moved from tests/markups/fail-19.gmarkup with 100% similarity]
glib/tests/markups/fail-2.expected [new file with mode: 0644]
glib/tests/markups/fail-2.gmarkup [moved from tests/markups/fail-2.gmarkup with 100% similarity]
glib/tests/markups/fail-20.expected [new file with mode: 0644]
glib/tests/markups/fail-20.gmarkup [moved from tests/markups/fail-20.gmarkup with 100% similarity]
glib/tests/markups/fail-21.expected [new file with mode: 0644]
glib/tests/markups/fail-21.gmarkup [moved from tests/markups/fail-21.gmarkup with 100% similarity]
glib/tests/markups/fail-22.expected [new file with mode: 0644]
glib/tests/markups/fail-22.gmarkup [moved from tests/markups/fail-22.gmarkup with 100% similarity]
glib/tests/markups/fail-23.expected [new file with mode: 0644]
glib/tests/markups/fail-23.gmarkup [moved from tests/markups/fail-23.gmarkup with 100% similarity]
glib/tests/markups/fail-24.expected [new file with mode: 0644]
glib/tests/markups/fail-24.gmarkup [moved from tests/markups/fail-24.gmarkup with 100% similarity]
glib/tests/markups/fail-25.expected [new file with mode: 0644]
glib/tests/markups/fail-25.gmarkup [moved from tests/markups/fail-25.gmarkup with 100% similarity]
glib/tests/markups/fail-26.expected [new file with mode: 0644]
glib/tests/markups/fail-26.gmarkup [moved from tests/markups/fail-26.gmarkup with 100% similarity]
glib/tests/markups/fail-27.expected [new file with mode: 0644]
glib/tests/markups/fail-27.gmarkup [moved from tests/markups/fail-27.gmarkup with 100% similarity]
glib/tests/markups/fail-28.expected [new file with mode: 0644]
glib/tests/markups/fail-28.gmarkup [moved from tests/markups/fail-28.gmarkup with 100% similarity]
glib/tests/markups/fail-29.expected [new file with mode: 0644]
glib/tests/markups/fail-29.gmarkup [moved from tests/markups/fail-29.gmarkup with 100% similarity]
glib/tests/markups/fail-3.gmarkup [moved from tests/markups/fail-3.gmarkup with 100% similarity]
glib/tests/markups/fail-30.expected [new file with mode: 0644]
glib/tests/markups/fail-30.gmarkup [moved from tests/markups/fail-30.gmarkup with 100% similarity]
glib/tests/markups/fail-31.expected [new file with mode: 0644]
glib/tests/markups/fail-31.gmarkup [moved from tests/markups/fail-31.gmarkup with 100% similarity]
glib/tests/markups/fail-32.expected [new file with mode: 0644]
glib/tests/markups/fail-32.gmarkup [moved from tests/markups/fail-32.gmarkup with 100% similarity]
glib/tests/markups/fail-33.expected [new file with mode: 0644]
glib/tests/markups/fail-33.gmarkup [moved from tests/markups/fail-33.gmarkup with 100% similarity]
glib/tests/markups/fail-34.expected [new file with mode: 0644]
glib/tests/markups/fail-34.gmarkup [moved from tests/markups/fail-34.gmarkup with 100% similarity]
glib/tests/markups/fail-35.expected [new file with mode: 0644]
glib/tests/markups/fail-35.gmarkup [moved from tests/markups/fail-35.gmarkup with 100% similarity]
glib/tests/markups/fail-36.gmarkup [moved from tests/markups/fail-36.gmarkup with 100% similarity]
glib/tests/markups/fail-37.expected [new file with mode: 0644]
glib/tests/markups/fail-37.gmarkup [moved from tests/markups/fail-37.gmarkup with 100% similarity]
glib/tests/markups/fail-38.expected [new file with mode: 0644]
glib/tests/markups/fail-38.gmarkup [moved from tests/markups/fail-38.gmarkup with 100% similarity]
glib/tests/markups/fail-39.expected [new file with mode: 0644]
glib/tests/markups/fail-39.gmarkup [moved from tests/markups/fail-39.gmarkup with 100% similarity]
glib/tests/markups/fail-4.expected [new file with mode: 0644]
glib/tests/markups/fail-4.gmarkup [moved from tests/markups/fail-4.gmarkup with 100% similarity]
glib/tests/markups/fail-40.expected [new file with mode: 0644]
glib/tests/markups/fail-40.gmarkup [moved from tests/markups/fail-40.gmarkup with 100% similarity]
glib/tests/markups/fail-5.expected [new file with mode: 0644]
glib/tests/markups/fail-5.gmarkup [moved from tests/markups/fail-5.gmarkup with 100% similarity]
glib/tests/markups/fail-6.expected [new file with mode: 0644]
glib/tests/markups/fail-6.gmarkup [moved from tests/markups/fail-6.gmarkup with 100% similarity]
glib/tests/markups/fail-7.expected [new file with mode: 0644]
glib/tests/markups/fail-7.gmarkup [moved from tests/markups/fail-7.gmarkup with 100% similarity]
glib/tests/markups/fail-8.expected [new file with mode: 0644]
glib/tests/markups/fail-8.gmarkup [moved from tests/markups/fail-8.gmarkup with 100% similarity]
glib/tests/markups/fail-9.expected [new file with mode: 0644]
glib/tests/markups/fail-9.gmarkup [moved from tests/markups/fail-9.gmarkup with 100% similarity]
glib/tests/markups/valid-1.expected [moved from tests/markups/expected-1 with 100% similarity]
glib/tests/markups/valid-1.gmarkup [moved from tests/markups/valid-1.gmarkup with 100% similarity]
glib/tests/markups/valid-10.expected [moved from tests/markups/expected-10 with 100% similarity]
glib/tests/markups/valid-10.gmarkup [moved from tests/markups/valid-10.gmarkup with 100% similarity]
glib/tests/markups/valid-11.expected [moved from tests/markups/expected-9 with 100% similarity]
glib/tests/markups/valid-11.gmarkup [moved from tests/markups/valid-11.gmarkup with 100% similarity]
glib/tests/markups/valid-2.expected [moved from tests/markups/expected-2 with 100% similarity]
glib/tests/markups/valid-2.gmarkup [moved from tests/markups/valid-2.gmarkup with 100% similarity]
glib/tests/markups/valid-3.expected [moved from tests/markups/expected-3 with 100% similarity]
glib/tests/markups/valid-3.gmarkup [moved from tests/markups/valid-3.gmarkup with 100% similarity]
glib/tests/markups/valid-4.expected [moved from tests/markups/expected-4 with 100% similarity]
glib/tests/markups/valid-4.gmarkup [moved from tests/markups/valid-4.gmarkup with 100% similarity]
glib/tests/markups/valid-5.expected [moved from tests/markups/expected-5 with 100% similarity]
glib/tests/markups/valid-5.gmarkup [moved from tests/markups/valid-5.gmarkup with 100% similarity]
glib/tests/markups/valid-6.expected [moved from tests/markups/expected-6 with 100% similarity]
glib/tests/markups/valid-6.gmarkup [moved from tests/markups/valid-6.gmarkup with 100% similarity]
glib/tests/markups/valid-7.expected [moved from tests/markups/expected-7 with 100% similarity]
glib/tests/markups/valid-7.gmarkup [moved from tests/markups/valid-7.gmarkup with 100% similarity]
glib/tests/markups/valid-8.expected [moved from tests/markups/expected-8 with 100% similarity]
glib/tests/markups/valid-8.gmarkup [moved from tests/markups/valid-8.gmarkup with 100% similarity]
glib/tests/markups/valid-9.expected [moved from tests/markups/expected-11 with 100% similarity]
glib/tests/markups/valid-9.gmarkup [moved from tests/markups/valid-9.gmarkup with 100% similarity]
tests/Makefile.am
tests/markup-test.c [deleted file]
tests/run-markup-tests.sh [deleted file]

index c2d6f0a..0269dc9 100644 (file)
@@ -47,6 +47,15 @@ TEST_PROGS        += string
 string_SOURCES     = string.c
 string_LDADD      = $(progs_ldadd) -lm
 
+TEST_PROGS          += markup-parse
+markup_parse_LDADD   = $(progs_ldadd)
+
+TEST_PROGS          += markup-collect
+markup_collect_LDADD = $(progs_ldadd)
+
+TEST_PROGS         += markup-escape
+markup_escape_LDADD = $(progs_ldadd)
+
 TEST_PROGS               += markup-subparser
 markup_subparser_LDADD    = $(progs_ldadd)
 
@@ -128,15 +137,9 @@ dir_LDADD           = $(progs_ldadd)
 TEST_PROGS         += pattern
 pattern_LDADD       = $(progs_ldadd)
 
-TEST_PROGS         += markup-escape
-markup_escape_LDADD = $(progs_ldadd)
-
 TEST_PROGS         += logging
 logging_LDADD       = $(progs_ldadd)
 
-TEST_PROGS          += markup-collect
-markup_collect_LDADD = $(progs_ldadd)
-
 if OS_UNIX
 
 # some testing of gtester funcitonality
@@ -155,3 +158,8 @@ EXTRA_DIST += \
        4096-random-bytes       \
        keyfiletest.ini         \
        bookmarks.xbel
+
+dist_hook:
+       mkdir $(distdir)/markups;               \
+       for f in $(srcdir)/markups/*; do        \
+         cp $$f $(distdir)/markups; done
diff --git a/glib/tests/markup-parse.c b/glib/tests/markup-parse.c
new file mode 100644 (file)
index 0000000..62f1718
--- /dev/null
@@ -0,0 +1,290 @@
+#undef G_DISABLE_ASSERT
+#undef G_LOG_DOMAIN
+
+#include <string.h>
+#include <stdio.h>
+#include <glib.h>
+
+#ifndef SRCDIR
+#define SRCDIR "."
+#endif
+
+static int depth = 0;
+static GString *string;
+
+static void
+indent (int extra)
+{
+  int i = 0;
+  while (i < depth)
+    {
+      g_string_append (string, "  ");
+      ++i;
+    }
+}
+
+static void
+start_element_handler  (GMarkupParseContext *context,
+                        const gchar         *element_name,
+                        const gchar        **attribute_names,
+                        const gchar        **attribute_values,
+                        gpointer             user_data,
+                        GError             **error)
+{
+  int i;
+  
+  indent (0);
+  g_string_append_printf (string, "ELEMENT '%s'\n", element_name);
+
+  i = 0;
+  while (attribute_names[i] != NULL)
+    {
+      indent (1);
+
+      g_string_append_printf (string, "%s=\"%s\"\n",
+                              attribute_names[i],
+                              attribute_values[i]);
+      
+      ++i;
+    }
+  
+  ++depth;
+}
+
+static void
+end_element_handler (GMarkupParseContext *context,
+                     const gchar         *element_name,
+                     gpointer             user_data,
+                     GError             **error)
+{
+  --depth;
+  indent (0);
+  g_string_append_printf (string, "END '%s'\n", element_name);
+  }
+
+static void
+text_handler (GMarkupParseContext *context,
+              const gchar         *text,
+              gsize                text_len,
+              gpointer             user_data,
+              GError             **error)
+{
+  indent (0);
+  g_string_append_printf (string, "TEXT '%.*s'\n", (int)text_len, text);
+}
+
+
+static void
+passthrough_handler (GMarkupParseContext *context,
+                     const gchar         *passthrough_text,
+                     gsize                text_len,
+                     gpointer             user_data,
+                     GError             **error)
+{
+  indent (0);
+
+  g_string_append_printf (string, "PASS '%.*s'\n", (int)text_len, passthrough_text);
+}
+
+static void
+error_handler (GMarkupParseContext *context,
+               GError              *error,
+               gpointer             user_data)
+{
+  g_string_append_printf (string, "ERROR %s\n", error->message);
+}
+
+static const GMarkupParser parser = {
+  start_element_handler,
+  end_element_handler,
+  text_handler,
+  passthrough_handler,
+  error_handler
+};
+
+static const GMarkupParser silent_parser = {
+  NULL,
+  NULL,
+  NULL,
+  NULL,
+  error_handler
+};
+
+static int
+test_in_chunks (const gchar *contents,
+                gint         length,
+                gint         chunk_size)
+{
+  GMarkupParseContext *context;
+  int i = 0;
+  
+  context = g_markup_parse_context_new (&silent_parser, 0, NULL, NULL);
+
+  while (i < length)
+    {
+      int this_chunk = MIN (length - i, chunk_size);
+
+      if (!g_markup_parse_context_parse (context,
+                                         contents + i,
+                                         this_chunk,
+                                         NULL))
+        {
+          g_markup_parse_context_free (context);
+          return 1;
+        }
+
+      i += this_chunk;
+    }
+      
+  if (!g_markup_parse_context_end_parse (context, NULL))
+    {
+      g_markup_parse_context_free (context);
+      return 1;
+    }
+
+  g_markup_parse_context_free (context);
+
+  return 0;
+}
+
+static int
+test_file (const gchar *filename)
+{
+  gchar *contents;
+  gsize  length;
+  GError *error;
+  GMarkupParseContext *context;
+  gint line, col;
+
+  error = NULL;
+  if (!g_file_get_contents (filename,
+                            &contents,
+                            &length,
+                            &error))
+    {
+      fprintf (stderr, "%s\n", error->message);
+      g_error_free (error);
+      return 1;
+    }
+
+  context = g_markup_parse_context_new (&parser, 0, NULL, NULL);
+  g_assert (g_markup_parse_context_get_user_data (context) == NULL);
+  g_markup_parse_context_get_position (context, &line, &col);
+  g_assert (line == 1 && col == 1);
+
+  if (!g_markup_parse_context_parse (context, contents, length, NULL))
+    {
+      g_markup_parse_context_free (context);
+      return 1;
+    }
+
+  if (!g_markup_parse_context_end_parse (context, NULL))
+    {
+      g_markup_parse_context_free (context);
+      return 1;
+    }
+
+  g_markup_parse_context_free (context);
+
+  /* A byte at a time */
+  if (test_in_chunks (contents, length, 1) != 0)
+    return 1;
+
+  /* 2 bytes */
+  if (test_in_chunks (contents, length, 2) != 0)
+    return 1;
+
+  /*5 bytes */
+  if (test_in_chunks (contents, length, 5) != 0)
+    return 1;
+  
+  /* 12 bytes */
+  if (test_in_chunks (contents, length, 12) != 0)
+    return 1;
+  
+  /* 1024 bytes */
+  if (test_in_chunks (contents, length, 1024) != 0)
+    return 1;
+
+  return 0;
+}
+
+static gchar *
+get_expected_filename (const gchar *filename)
+{
+  gchar *f, *p, *expected;
+
+  f = g_strdup (filename);
+  p = strstr (f, ".gmarkup");
+  *p = 0;
+  expected = g_strconcat (f, ".expected", NULL);
+  g_free (f);
+
+  return expected;
+}
+
+static void
+test_parse (gconstpointer d)
+{
+  const gchar *filename = d;
+  gchar *expected_file;
+  gchar *expected;
+  gint res;
+
+  depth = 0;
+  string = g_string_sized_new (0);
+
+  res = test_file (filename);
+
+  if (strstr (filename, "valid"))
+    g_assert_cmpint (res, ==, 0);
+  else
+    g_assert_cmpint (res, ==, 1);
+
+  expected_file = get_expected_filename (filename);
+  if (g_file_get_contents (expected_file, &expected, NULL, NULL))
+    {
+      g_assert_cmpstr (string->str, ==, expected);
+      g_free (expected);
+    }
+  g_free (expected_file);
+
+  g_string_free (string, TRUE);
+}
+
+int
+main (int argc, char *argv[])
+{
+  GDir *dir;
+  GError *error;
+  const gchar *name;
+  gchar *path;
+
+  g_test_init (&argc, &argv, NULL);
+
+  /* allow to easily generate expected output for new test cases */
+  if (argc > 1)
+    {
+      string = g_string_sized_new (0);
+      test_file (argv[1]);
+      g_print (string->str);
+      return 0;
+    }
+
+  error = NULL;
+  dir = g_dir_open (SRCDIR "/markups", 0, &error);
+  g_assert_no_error (error);
+  while ((name = g_dir_read_name (dir)) != NULL)
+    {
+      if (strstr (name, "expected"))
+        continue;
+
+      path = g_strdup_printf ("/markup/parse/%s", name);
+      g_test_add_data_func (path, g_build_filename (SRCDIR, "markups", name, NULL),  test_parse);
+      g_free (path);
+    }
+  g_dir_close (dir);
+
+  return g_test_run ();
+}
+
diff --git a/glib/tests/markups/fail-1.expected b/glib/tests/markups/fail-1.expected
new file mode 100644 (file)
index 0000000..ccd6219
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 1: Document was empty or contained only whitespace
diff --git a/glib/tests/markups/fail-10.expected b/glib/tests/markups/fail-10.expected
new file mode 100644 (file)
index 0000000..7761a22
--- /dev/null
@@ -0,0 +1,4 @@
+ELEMENT 'foo'
+  TEXT '
+'
+ERROR Error on line 2 char 8: Element '|foo' was closed, but the currently open element is 'foo'
diff --git a/glib/tests/markups/fail-11.expected b/glib/tests/markups/fail-11.expected
new file mode 100644 (file)
index 0000000..3a7173d
--- /dev/null
@@ -0,0 +1,7 @@
+ELEMENT 'foo'
+  TEXT '
+'
+  ELEMENT 'bar'
+    TEXT '
+'
+ERROR Error on line 3 char 7: Element 'foo' was closed, but the currently open element is 'bar'
diff --git a/glib/tests/markups/fail-12.expected b/glib/tests/markups/fail-12.expected
new file mode 100644 (file)
index 0000000..0aab7b5
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 6: Element 'foo' was closed, no element is currently open
diff --git a/glib/tests/markups/fail-13.expected b/glib/tests/markups/fail-13.expected
new file mode 100644 (file)
index 0000000..60157fa
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 7: Element 'foo|' was closed, no element is currently open
diff --git a/glib/tests/markups/fail-14.expected b/glib/tests/markups/fail-14.expected
new file mode 100644 (file)
index 0000000..47e6847
--- /dev/null
@@ -0,0 +1,4 @@
+ELEMENT 'foo'
+  TEXT '
+'
+ERROR Error on line 2 char 3: Document ended unexpectedly just after an open angle bracket '<'
diff --git a/glib/tests/markups/fail-15.expected b/glib/tests/markups/fail-15.expected
new file mode 100644 (file)
index 0000000..380ab74
--- /dev/null
@@ -0,0 +1,8 @@
+ELEMENT 'foo'
+  TEXT '
+'
+  ELEMENT 'bar'
+    TEXT '
+'
+  END 'bar'
+ERROR Error on line 3 char 8: Document ended unexpectedly with elements still open - 'foo' was the last element opened
diff --git a/glib/tests/markups/fail-16.expected b/glib/tests/markups/fail-16.expected
new file mode 100644 (file)
index 0000000..a9f1f82
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1 char 6: Document ended unexpectedly, expected to see a close angle bracket ending the tag <foo/>
diff --git a/glib/tests/markups/fail-17.expected b/glib/tests/markups/fail-17.expected
new file mode 100644 (file)
index 0000000..8fce369
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 4: Document ended unexpectedly inside an element name
diff --git a/glib/tests/markups/fail-18.expected b/glib/tests/markups/fail-18.expected
new file mode 100644 (file)
index 0000000..b50f009
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 9: Document ended unexpectedly inside an attribute name
diff --git a/glib/tests/markups/fail-19.expected b/glib/tests/markups/fail-19.expected
new file mode 100644 (file)
index 0000000..8a4300a
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 6: Document ended unexpectedly inside an element-opening tag.
diff --git a/glib/tests/markups/fail-2.expected b/glib/tests/markups/fail-2.expected
new file mode 100644 (file)
index 0000000..c7d1b65
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 1: Document must begin with an element (e.g. <book>)
diff --git a/glib/tests/markups/fail-20.expected b/glib/tests/markups/fail-20.expected
new file mode 100644 (file)
index 0000000..0dc081b
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 10: Document ended unexpectedly after the equals sign following an attribute name; no attribute value
diff --git a/glib/tests/markups/fail-21.expected b/glib/tests/markups/fail-21.expected
new file mode 100644 (file)
index 0000000..5b46ce7
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 15: Document ended unexpectedly while inside an attribute value
diff --git a/glib/tests/markups/fail-22.expected b/glib/tests/markups/fail-22.expected
new file mode 100644 (file)
index 0000000..b9585de
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1 char 6: Document ended unexpectedly with elements still open - 'foo' was the last element opened
diff --git a/glib/tests/markups/fail-23.expected b/glib/tests/markups/fail-23.expected
new file mode 100644 (file)
index 0000000..a1b5ce4
--- /dev/null
@@ -0,0 +1,4 @@
+ELEMENT 'foo'
+  TEXT '
+'
+ERROR Error on line 2 char 5: Document ended unexpectedly inside an element name
diff --git a/glib/tests/markups/fail-24.expected b/glib/tests/markups/fail-24.expected
new file mode 100644 (file)
index 0000000..b71005a
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 44: Document ended unexpectedly inside a comment or processing instruction
diff --git a/glib/tests/markups/fail-25.expected b/glib/tests/markups/fail-25.expected
new file mode 100644 (file)
index 0000000..063c710
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 32: Document ended unexpectedly inside a comment or processing instruction
diff --git a/glib/tests/markups/fail-26.expected b/glib/tests/markups/fail-26.expected
new file mode 100644 (file)
index 0000000..99ab934
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;
diff --git a/glib/tests/markups/fail-27.expected b/glib/tests/markups/fail-27.expected
new file mode 100644 (file)
index 0000000..3090f33
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Entity name '|' is not known
diff --git a/glib/tests/markups/fail-28.expected b/glib/tests/markups/fail-28.expected
new file mode 100644 (file)
index 0000000..e54ab66
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Entity name 'am|' is not known
diff --git a/glib/tests/markups/fail-29.expected b/glib/tests/markups/fail-29.expected
new file mode 100644 (file)
index 0000000..ddc0090
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Entity name 'bar' is not known
diff --git a/glib/tests/markups/fail-30.expected b/glib/tests/markups/fail-30.expected
new file mode 100644 (file)
index 0000000..15169e3
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity - escape ampersand as &amp;
diff --git a/glib/tests/markups/fail-31.expected b/glib/tests/markups/fail-31.expected
new file mode 100644 (file)
index 0000000..a17ae97
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Failed to parse '34592348345343453453455645765736575865767', which should have been a digit inside a character reference (&#234; for example) - perhaps the digit is too large
diff --git a/glib/tests/markups/fail-32.expected b/glib/tests/markups/fail-32.expected
new file mode 100644 (file)
index 0000000..c3d9c45
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Character reference '0' does not encode a permitted character
diff --git a/glib/tests/markups/fail-33.expected b/glib/tests/markups/fail-33.expected
new file mode 100644 (file)
index 0000000..c485463
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Failed to parse '', which should have been a digit inside a character reference (&#234; for example) - perhaps the digit is too large
diff --git a/glib/tests/markups/fail-34.expected b/glib/tests/markups/fail-34.expected
new file mode 100644 (file)
index 0000000..7fac38c
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Character reference did not end with a semicolon; most likely you used an ampersand character without intending to start an entity - escape ampersand as &amp;
diff --git a/glib/tests/markups/fail-35.expected b/glib/tests/markups/fail-35.expected
new file mode 100644 (file)
index 0000000..15169e3
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'foo'
+ERROR Error on line 1: Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity - escape ampersand as &amp;
diff --git a/glib/tests/markups/fail-37.expected b/glib/tests/markups/fail-37.expected
new file mode 100644 (file)
index 0000000..f04ec35
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 2: ' ' is not a valid character following a '<' character; it may not begin an element name
diff --git a/glib/tests/markups/fail-38.expected b/glib/tests/markups/fail-38.expected
new file mode 100644 (file)
index 0000000..f25b4cd
--- /dev/null
@@ -0,0 +1,3 @@
+ELEMENT 'foo'
+  TEXT 'data'
+ERROR Error on line 1 char 11: ' ' is not a valid character following a '<' character; it may not begin an element name
diff --git a/glib/tests/markups/fail-39.expected b/glib/tests/markups/fail-39.expected
new file mode 100644 (file)
index 0000000..de0e4b8
--- /dev/null
@@ -0,0 +1,3 @@
+ELEMENT 'foo'
+  TEXT 'data'
+ERROR Error on line 1 char 12: ' ' is not a valid character following the characters '</'; ' ' may not begin an element name
diff --git a/glib/tests/markups/fail-4.expected b/glib/tests/markups/fail-4.expected
new file mode 100644 (file)
index 0000000..c7d1b65
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 1: Document must begin with an element (e.g. <book>)
diff --git a/glib/tests/markups/fail-40.expected b/glib/tests/markups/fail-40.expected
new file mode 100644 (file)
index 0000000..a2b5cbc
--- /dev/null
@@ -0,0 +1,2 @@
+ELEMENT 'bla'
+ERROR Error on line 1: Entity name 'unknownentityname' is not known
diff --git a/glib/tests/markups/fail-5.expected b/glib/tests/markups/fail-5.expected
new file mode 100644 (file)
index 0000000..7bd0f78
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 2 char 1: '|foo' is not a valid name 
diff --git a/glib/tests/markups/fail-6.expected b/glib/tests/markups/fail-6.expected
new file mode 100644 (file)
index 0000000..1c0ea0e
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 2 char 1: 'foo|' is not a valid name: '|' 
diff --git a/glib/tests/markups/fail-7.expected b/glib/tests/markups/fail-7.expected
new file mode 100644 (file)
index 0000000..09159d6
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 15: 'bar}"baz"' is not a valid name: '}' 
diff --git a/glib/tests/markups/fail-8.expected b/glib/tests/markups/fail-8.expected
new file mode 100644 (file)
index 0000000..2448220
--- /dev/null
@@ -0,0 +1,3 @@
+ELEMENT 'foo'
+END 'foo'
+ERROR Error on line 1 char 6: Odd character '}', expected a '>' character to end the empty-element tag 'foo'
diff --git a/glib/tests/markups/fail-9.expected b/glib/tests/markups/fail-9.expected
new file mode 100644 (file)
index 0000000..9994eb3
--- /dev/null
@@ -0,0 +1 @@
+ERROR Error on line 1 char 10: Odd character '{', expected an open quote mark after the equals sign when giving value for attribute 'bar' of element 'foo'
index fe47997..6d5c102 100644 (file)
@@ -112,9 +112,9 @@ test_programs =                                     \
        unicode-caseconv                        \
        unicode-encoding
 
-test_scripts = run-markup-tests.sh run-collate-tests.sh run-bookmark-test.sh run-assert-msg-test.sh
+test_scripts = run-collate-tests.sh run-bookmark-test.sh run-assert-msg-test.sh
 
-test_script_support_programs = markup-test unicode-collate bookmarkfile-test
+test_script_support_programs = unicode-collate bookmarkfile-test
 
 check_PROGRAMS = $(test_programs) $(test_script_support_programs)
 
@@ -141,7 +141,6 @@ gio_test_LDADD = $(progs_ldadd)
 iochannel_test_LDADD = $(progs_ldadd)
 list_test_LDADD = $(progs_ldadd)
 mainloop_test_LDADD = $(thread_ldadd)
-markup_test_LDADD = $(progs_ldadd)
 mapping_test_LDADD = $(progs_ldadd)
 module_test_LDADD = $(module_ldadd) $(module_test_exp)
 module_test_LDFLAGS = $(G_MODULE_LDFLAGS)
@@ -180,9 +179,6 @@ dist-hook: $(BUILT_EXTRA_DIST)
        for f in $$files; do                                    \
          if test -f $$f; then d=.; else d=$(srcdir); fi;       \
          cp $$d/$$f $(distdir) || exit 1; done
-       mkdir $(distdir)/markups;                               \
-       for f in $(srcdir)/markups/* ; do                       \
-         cp $$f $(distdir)/markups; done 
        mkdir $(distdir)/collate;                               \
        for f in $(srcdir)/collate/* ; do                       \
           if test -f $$f; then cp $$f $(distdir)/collate; fi; done
diff --git a/tests/markup-test.c b/tests/markup-test.c
deleted file mode 100644 (file)
index 6d5f44b..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-#undef G_DISABLE_ASSERT
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <glib.h>
-
-static int depth = 0;
-
-static void
-indent (int extra)
-{
-  int i = 0;
-  while (i < depth)
-    {
-      fputs ("  ", stdout);
-      ++i;
-    }
-}
-
-static void
-start_element_handler  (GMarkupParseContext *context,
-                        const gchar         *element_name,
-                        const gchar        **attribute_names,
-                        const gchar        **attribute_values,
-                        gpointer             user_data,
-                        GError             **error)
-{
-  int i;
-  
-  indent (0);
-  printf ("ELEMENT '%s'\n", element_name);
-
-  i = 0;
-  while (attribute_names[i] != NULL)
-    {
-      indent (1);
-
-      printf ("%s=\"%s\"\n",
-              attribute_names[i],
-              attribute_values[i]);
-      
-      ++i;
-    }
-  
-  ++depth;
-}
-
-static void
-end_element_handler    (GMarkupParseContext *context,
-                        const gchar         *element_name,
-                        gpointer             user_data,
-                        GError             **error)
-{
-  --depth;
-  indent (0);
-  printf ("END '%s'\n", element_name);
-  }
-
-static void
-text_handler                      (GMarkupParseContext *context,
-                        const gchar         *text,
-                        gsize                text_len,
-                        gpointer             user_data,
-                        GError             **error)
-{
-  indent (0);
-  printf ("TEXT '%.*s'\n", (int)text_len, text);
-}
-
-
-static void
-passthrough_handler    (GMarkupParseContext *context,
-                        const gchar         *passthrough_text,
-                        gsize                text_len,
-                        gpointer             user_data,
-                        GError             **error)
-{
-  indent (0);
-
-  printf ("PASS '%.*s'\n", (int)text_len, passthrough_text);
-}
-
-static void
-error_handler          (GMarkupParseContext *context,
-                        GError              *error,
-                        gpointer             user_data)
-{
-  fprintf (stderr, " %s\n", error->message);
-}
-
-static const GMarkupParser parser = {
-  start_element_handler,
-  end_element_handler,
-  text_handler,
-  passthrough_handler,
-  error_handler
-};
-
-static const GMarkupParser silent_parser = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  error_handler
-};
-
-static int
-test_in_chunks (const gchar *contents,
-                gint         length,
-                gint         chunk_size)
-{
-  GMarkupParseContext *context;
-  int i = 0;
-  
-  context = g_markup_parse_context_new (&silent_parser, 0, NULL, NULL);
-
-  while (i < length)
-    {
-      int this_chunk = MIN (length - i, chunk_size);
-
-      if (!g_markup_parse_context_parse (context,
-                                         contents + i,
-                                         this_chunk,
-                                         NULL))
-        {
-          g_markup_parse_context_free (context);
-          return 1;
-        }
-
-      i += this_chunk;
-    }
-      
-  if (!g_markup_parse_context_end_parse (context, NULL))
-    {
-      g_markup_parse_context_free (context);
-      return 1;
-    }
-
-  g_markup_parse_context_free (context);
-
-  return 0;
-}
-
-static int
-test_file (const gchar *filename)
-{
-  gchar *contents;
-  gsize  length;
-  GError *error;
-  GMarkupParseContext *context;
-  
-  error = NULL;
-  if (!g_file_get_contents (filename,
-                            &contents,
-                            &length,
-                            &error))
-    {
-      fprintf (stderr, "%s\n", error->message);
-      g_error_free (error);
-      return 1;
-    }
-
-  context = g_markup_parse_context_new (&parser, 0, NULL, NULL);
-
-  if (!g_markup_parse_context_parse (context, contents, length, NULL))
-    {
-      g_markup_parse_context_free (context);
-      return 1;
-    }
-
-  if (!g_markup_parse_context_end_parse (context, NULL))
-    {
-      g_markup_parse_context_free (context);
-      return 1;
-    }
-
-  g_markup_parse_context_free (context);
-
-  /* A byte at a time */
-  if (test_in_chunks (contents, length, 1) != 0)
-    return 1;
-
-  /* 2 bytes */
-  if (test_in_chunks (contents, length, 2) != 0)
-    return 1;
-
-  /*5 bytes */
-  if (test_in_chunks (contents, length, 5) != 0)
-    return 1;
-  
-  /* 12 bytes */
-  if (test_in_chunks (contents, length, 12) != 0)
-    return 1;
-  
-  /* 1024 bytes */
-  if (test_in_chunks (contents, length, 1024) != 0)
-    return 1;
-
-  return 0;
-}
-
-int
-main (int   argc,
-      char *argv[])
-{
-  if (argc > 1)
-    return test_file (argv[1]);
-  else
-    {
-      fprintf (stderr, "Give a markup file on the command line\n");
-      return 1;
-    }
-}
-
diff --git a/tests/run-markup-tests.sh b/tests/run-markup-tests.sh
deleted file mode 100755 (executable)
index 38074cc..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#! /bin/sh
-
-fail ()
-{
-  echo "Test failed: $*"
-  exit 1
-}
-
-echo_v ()
-{
-  if [ "$verbose" = "1" ]; then
-    echo "$*"
-  fi
-}
-
-error_out=/dev/null
-if [ "$1" = "-v" ]; then
-  verbose=1
-  error_out=/dev/stderr
-fi
-for I in ${srcdir:-.}/markups/fail-*.gmarkup; do
-  echo_v "Parsing $I, should fail"
-  ./markup-test $I > /dev/null 2> $error_out && fail "failed to generate error on $I"
-  if test "$?" != "1"; then
-    fail "unexpected error on $I"
-  fi  
-done
-
-I=1
-while test $I -lt 100 ; do
-  F=${srcdir:-.}/markups/valid-$I.gmarkup
-  if [ -f $F ] ; then
-    echo_v "Parsing $F, should succeed"
-    ./markup-test $F > actual 2> $error_out || fail "failed on $F"
-    diff ${srcdir:-.}/markups/expected-$I actual || fail "unexpected output on $F"
-    rm actual
-  fi
-  I=`expr $I + 1`
-done
-
-echo_v "All tests passed."