From 03be0d7237c7f250e01b785af4e4e4e8724a3e8f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 29 Jul 2010 20:52:31 -0400 Subject: [PATCH] Move markup parse tests to the test framework --- glib/tests/Makefile.am | 20 +- glib/tests/markup-parse.c | 290 +++++++++++++++++++++ glib/tests/markups/fail-1.expected | 1 + {tests => glib/tests}/markups/fail-1.gmarkup | 0 glib/tests/markups/fail-10.expected | 4 + {tests => glib/tests}/markups/fail-10.gmarkup | 0 glib/tests/markups/fail-11.expected | 7 + {tests => glib/tests}/markups/fail-11.gmarkup | 0 glib/tests/markups/fail-12.expected | 1 + {tests => glib/tests}/markups/fail-12.gmarkup | 0 glib/tests/markups/fail-13.expected | 1 + {tests => glib/tests}/markups/fail-13.gmarkup | 0 glib/tests/markups/fail-14.expected | 4 + {tests => glib/tests}/markups/fail-14.gmarkup | 0 glib/tests/markups/fail-15.expected | 8 + {tests => glib/tests}/markups/fail-15.gmarkup | 0 glib/tests/markups/fail-16.expected | 2 + {tests => glib/tests}/markups/fail-16.gmarkup | 0 glib/tests/markups/fail-17.expected | 1 + {tests => glib/tests}/markups/fail-17.gmarkup | 0 glib/tests/markups/fail-18.expected | 1 + {tests => glib/tests}/markups/fail-18.gmarkup | 0 glib/tests/markups/fail-19.expected | 1 + {tests => glib/tests}/markups/fail-19.gmarkup | 0 glib/tests/markups/fail-2.expected | 1 + {tests => glib/tests}/markups/fail-2.gmarkup | 0 glib/tests/markups/fail-20.expected | 1 + {tests => glib/tests}/markups/fail-20.gmarkup | 0 glib/tests/markups/fail-21.expected | 1 + {tests => glib/tests}/markups/fail-21.gmarkup | 0 glib/tests/markups/fail-22.expected | 2 + {tests => glib/tests}/markups/fail-22.gmarkup | 0 glib/tests/markups/fail-23.expected | 4 + {tests => glib/tests}/markups/fail-23.gmarkup | 0 glib/tests/markups/fail-24.expected | 1 + {tests => glib/tests}/markups/fail-24.gmarkup | 0 glib/tests/markups/fail-25.expected | 1 + {tests => glib/tests}/markups/fail-25.gmarkup | 0 glib/tests/markups/fail-26.expected | 2 + {tests => glib/tests}/markups/fail-26.gmarkup | 0 glib/tests/markups/fail-27.expected | 2 + {tests => glib/tests}/markups/fail-27.gmarkup | 0 glib/tests/markups/fail-28.expected | 2 + {tests => glib/tests}/markups/fail-28.gmarkup | 0 glib/tests/markups/fail-29.expected | 2 + {tests => glib/tests}/markups/fail-29.gmarkup | 0 {tests => glib/tests}/markups/fail-3.gmarkup | 0 glib/tests/markups/fail-30.expected | 2 + {tests => glib/tests}/markups/fail-30.gmarkup | 0 glib/tests/markups/fail-31.expected | 2 + {tests => glib/tests}/markups/fail-31.gmarkup | 0 glib/tests/markups/fail-32.expected | 2 + {tests => glib/tests}/markups/fail-32.gmarkup | 0 glib/tests/markups/fail-33.expected | 2 + {tests => glib/tests}/markups/fail-33.gmarkup | 0 glib/tests/markups/fail-34.expected | 2 + {tests => glib/tests}/markups/fail-34.gmarkup | 0 glib/tests/markups/fail-35.expected | 2 + {tests => glib/tests}/markups/fail-35.gmarkup | 0 {tests => glib/tests}/markups/fail-36.gmarkup | 0 glib/tests/markups/fail-37.expected | 1 + {tests => glib/tests}/markups/fail-37.gmarkup | 0 glib/tests/markups/fail-38.expected | 3 + {tests => glib/tests}/markups/fail-38.gmarkup | 0 glib/tests/markups/fail-39.expected | 3 + {tests => glib/tests}/markups/fail-39.gmarkup | 0 glib/tests/markups/fail-4.expected | 1 + {tests => glib/tests}/markups/fail-4.gmarkup | 0 glib/tests/markups/fail-40.expected | 2 + {tests => glib/tests}/markups/fail-40.gmarkup | 0 glib/tests/markups/fail-5.expected | 1 + {tests => glib/tests}/markups/fail-5.gmarkup | 0 glib/tests/markups/fail-6.expected | 1 + {tests => glib/tests}/markups/fail-6.gmarkup | 0 glib/tests/markups/fail-7.expected | 1 + {tests => glib/tests}/markups/fail-7.gmarkup | 0 glib/tests/markups/fail-8.expected | 3 + {tests => glib/tests}/markups/fail-8.gmarkup | 0 glib/tests/markups/fail-9.expected | 1 + {tests => glib/tests}/markups/fail-9.gmarkup | 0 .../tests/markups/valid-1.expected | 0 {tests => glib/tests}/markups/valid-1.gmarkup | 0 .../tests/markups/valid-10.expected | 0 {tests => glib/tests}/markups/valid-10.gmarkup | 0 .../tests/markups/valid-11.expected | 0 {tests => glib/tests}/markups/valid-11.gmarkup | 0 .../tests/markups/valid-2.expected | 0 {tests => glib/tests}/markups/valid-2.gmarkup | 0 .../tests/markups/valid-3.expected | 0 {tests => glib/tests}/markups/valid-3.gmarkup | 0 .../tests/markups/valid-4.expected | 0 {tests => glib/tests}/markups/valid-4.gmarkup | 0 .../tests/markups/valid-5.expected | 0 {tests => glib/tests}/markups/valid-5.gmarkup | 0 .../tests/markups/valid-6.expected | 0 {tests => glib/tests}/markups/valid-6.gmarkup | 0 .../tests/markups/valid-7.expected | 0 {tests => glib/tests}/markups/valid-7.gmarkup | 0 .../tests/markups/valid-8.expected | 0 {tests => glib/tests}/markups/valid-8.gmarkup | 0 .../tests/markups/valid-9.expected | 0 {tests => glib/tests}/markups/valid-9.gmarkup | 0 tests/Makefile.am | 8 +- tests/markup-test.c | 214 --------------- tests/run-markup-tests.sh | 41 --- 105 files changed, 385 insertions(+), 267 deletions(-) create mode 100644 glib/tests/markup-parse.c create mode 100644 glib/tests/markups/fail-1.expected rename {tests => glib/tests}/markups/fail-1.gmarkup (100%) create mode 100644 glib/tests/markups/fail-10.expected rename {tests => glib/tests}/markups/fail-10.gmarkup (100%) create mode 100644 glib/tests/markups/fail-11.expected rename {tests => glib/tests}/markups/fail-11.gmarkup (100%) create mode 100644 glib/tests/markups/fail-12.expected rename {tests => glib/tests}/markups/fail-12.gmarkup (100%) create mode 100644 glib/tests/markups/fail-13.expected rename {tests => glib/tests}/markups/fail-13.gmarkup (100%) create mode 100644 glib/tests/markups/fail-14.expected rename {tests => glib/tests}/markups/fail-14.gmarkup (100%) create mode 100644 glib/tests/markups/fail-15.expected rename {tests => glib/tests}/markups/fail-15.gmarkup (100%) create mode 100644 glib/tests/markups/fail-16.expected rename {tests => glib/tests}/markups/fail-16.gmarkup (100%) create mode 100644 glib/tests/markups/fail-17.expected rename {tests => glib/tests}/markups/fail-17.gmarkup (100%) create mode 100644 glib/tests/markups/fail-18.expected rename {tests => glib/tests}/markups/fail-18.gmarkup (100%) create mode 100644 glib/tests/markups/fail-19.expected rename {tests => glib/tests}/markups/fail-19.gmarkup (100%) create mode 100644 glib/tests/markups/fail-2.expected rename {tests => glib/tests}/markups/fail-2.gmarkup (100%) create mode 100644 glib/tests/markups/fail-20.expected rename {tests => glib/tests}/markups/fail-20.gmarkup (100%) create mode 100644 glib/tests/markups/fail-21.expected rename {tests => glib/tests}/markups/fail-21.gmarkup (100%) create mode 100644 glib/tests/markups/fail-22.expected rename {tests => glib/tests}/markups/fail-22.gmarkup (100%) create mode 100644 glib/tests/markups/fail-23.expected rename {tests => glib/tests}/markups/fail-23.gmarkup (100%) create mode 100644 glib/tests/markups/fail-24.expected rename {tests => glib/tests}/markups/fail-24.gmarkup (100%) create mode 100644 glib/tests/markups/fail-25.expected rename {tests => glib/tests}/markups/fail-25.gmarkup (100%) create mode 100644 glib/tests/markups/fail-26.expected rename {tests => glib/tests}/markups/fail-26.gmarkup (100%) create mode 100644 glib/tests/markups/fail-27.expected rename {tests => glib/tests}/markups/fail-27.gmarkup (100%) create mode 100644 glib/tests/markups/fail-28.expected rename {tests => glib/tests}/markups/fail-28.gmarkup (100%) create mode 100644 glib/tests/markups/fail-29.expected rename {tests => glib/tests}/markups/fail-29.gmarkup (100%) rename {tests => glib/tests}/markups/fail-3.gmarkup (100%) create mode 100644 glib/tests/markups/fail-30.expected rename {tests => glib/tests}/markups/fail-30.gmarkup (100%) create mode 100644 glib/tests/markups/fail-31.expected rename {tests => glib/tests}/markups/fail-31.gmarkup (100%) create mode 100644 glib/tests/markups/fail-32.expected rename {tests => glib/tests}/markups/fail-32.gmarkup (100%) create mode 100644 glib/tests/markups/fail-33.expected rename {tests => glib/tests}/markups/fail-33.gmarkup (100%) create mode 100644 glib/tests/markups/fail-34.expected rename {tests => glib/tests}/markups/fail-34.gmarkup (100%) create mode 100644 glib/tests/markups/fail-35.expected rename {tests => glib/tests}/markups/fail-35.gmarkup (100%) rename {tests => glib/tests}/markups/fail-36.gmarkup (100%) create mode 100644 glib/tests/markups/fail-37.expected rename {tests => glib/tests}/markups/fail-37.gmarkup (100%) create mode 100644 glib/tests/markups/fail-38.expected rename {tests => glib/tests}/markups/fail-38.gmarkup (100%) create mode 100644 glib/tests/markups/fail-39.expected rename {tests => glib/tests}/markups/fail-39.gmarkup (100%) create mode 100644 glib/tests/markups/fail-4.expected rename {tests => glib/tests}/markups/fail-4.gmarkup (100%) create mode 100644 glib/tests/markups/fail-40.expected rename {tests => glib/tests}/markups/fail-40.gmarkup (100%) create mode 100644 glib/tests/markups/fail-5.expected rename {tests => glib/tests}/markups/fail-5.gmarkup (100%) create mode 100644 glib/tests/markups/fail-6.expected rename {tests => glib/tests}/markups/fail-6.gmarkup (100%) create mode 100644 glib/tests/markups/fail-7.expected rename {tests => glib/tests}/markups/fail-7.gmarkup (100%) create mode 100644 glib/tests/markups/fail-8.expected rename {tests => glib/tests}/markups/fail-8.gmarkup (100%) create mode 100644 glib/tests/markups/fail-9.expected rename {tests => glib/tests}/markups/fail-9.gmarkup (100%) rename tests/markups/expected-1 => glib/tests/markups/valid-1.expected (100%) rename {tests => glib/tests}/markups/valid-1.gmarkup (100%) rename tests/markups/expected-10 => glib/tests/markups/valid-10.expected (100%) rename {tests => glib/tests}/markups/valid-10.gmarkup (100%) rename tests/markups/expected-9 => glib/tests/markups/valid-11.expected (100%) rename {tests => glib/tests}/markups/valid-11.gmarkup (100%) rename tests/markups/expected-2 => glib/tests/markups/valid-2.expected (100%) rename {tests => glib/tests}/markups/valid-2.gmarkup (100%) rename tests/markups/expected-3 => glib/tests/markups/valid-3.expected (100%) rename {tests => glib/tests}/markups/valid-3.gmarkup (100%) rename tests/markups/expected-4 => glib/tests/markups/valid-4.expected (100%) rename {tests => glib/tests}/markups/valid-4.gmarkup (100%) rename tests/markups/expected-5 => glib/tests/markups/valid-5.expected (100%) rename {tests => glib/tests}/markups/valid-5.gmarkup (100%) rename tests/markups/expected-6 => glib/tests/markups/valid-6.expected (100%) rename {tests => glib/tests}/markups/valid-6.gmarkup (100%) rename tests/markups/expected-7 => glib/tests/markups/valid-7.expected (100%) rename {tests => glib/tests}/markups/valid-7.gmarkup (100%) rename tests/markups/expected-8 => glib/tests/markups/valid-8.expected (100%) rename {tests => glib/tests}/markups/valid-8.gmarkup (100%) rename tests/markups/expected-11 => glib/tests/markups/valid-9.expected (100%) rename {tests => glib/tests}/markups/valid-9.gmarkup (100%) delete mode 100644 tests/markup-test.c delete mode 100755 tests/run-markup-tests.sh diff --git a/glib/tests/Makefile.am b/glib/tests/Makefile.am index c2d6f0a..0269dc9 100644 --- a/glib/tests/Makefile.am +++ b/glib/tests/Makefile.am @@ -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 index 0000000..62f1718 --- /dev/null +++ b/glib/tests/markup-parse.c @@ -0,0 +1,290 @@ +#undef G_DISABLE_ASSERT +#undef G_LOG_DOMAIN + +#include +#include +#include + +#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 index 0000000..ccd6219 --- /dev/null +++ b/glib/tests/markups/fail-1.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 1: Document was empty or contained only whitespace diff --git a/tests/markups/fail-1.gmarkup b/glib/tests/markups/fail-1.gmarkup similarity index 100% rename from tests/markups/fail-1.gmarkup rename to glib/tests/markups/fail-1.gmarkup diff --git a/glib/tests/markups/fail-10.expected b/glib/tests/markups/fail-10.expected new file mode 100644 index 0000000..7761a22 --- /dev/null +++ b/glib/tests/markups/fail-10.expected @@ -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/tests/markups/fail-10.gmarkup b/glib/tests/markups/fail-10.gmarkup similarity index 100% rename from tests/markups/fail-10.gmarkup rename to glib/tests/markups/fail-10.gmarkup diff --git a/glib/tests/markups/fail-11.expected b/glib/tests/markups/fail-11.expected new file mode 100644 index 0000000..3a7173d --- /dev/null +++ b/glib/tests/markups/fail-11.expected @@ -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/tests/markups/fail-11.gmarkup b/glib/tests/markups/fail-11.gmarkup similarity index 100% rename from tests/markups/fail-11.gmarkup rename to glib/tests/markups/fail-11.gmarkup diff --git a/glib/tests/markups/fail-12.expected b/glib/tests/markups/fail-12.expected new file mode 100644 index 0000000..0aab7b5 --- /dev/null +++ b/glib/tests/markups/fail-12.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 6: Element 'foo' was closed, no element is currently open diff --git a/tests/markups/fail-12.gmarkup b/glib/tests/markups/fail-12.gmarkup similarity index 100% rename from tests/markups/fail-12.gmarkup rename to glib/tests/markups/fail-12.gmarkup diff --git a/glib/tests/markups/fail-13.expected b/glib/tests/markups/fail-13.expected new file mode 100644 index 0000000..60157fa --- /dev/null +++ b/glib/tests/markups/fail-13.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 7: Element 'foo|' was closed, no element is currently open diff --git a/tests/markups/fail-13.gmarkup b/glib/tests/markups/fail-13.gmarkup similarity index 100% rename from tests/markups/fail-13.gmarkup rename to glib/tests/markups/fail-13.gmarkup diff --git a/glib/tests/markups/fail-14.expected b/glib/tests/markups/fail-14.expected new file mode 100644 index 0000000..47e6847 --- /dev/null +++ b/glib/tests/markups/fail-14.expected @@ -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/tests/markups/fail-14.gmarkup b/glib/tests/markups/fail-14.gmarkup similarity index 100% rename from tests/markups/fail-14.gmarkup rename to glib/tests/markups/fail-14.gmarkup diff --git a/glib/tests/markups/fail-15.expected b/glib/tests/markups/fail-15.expected new file mode 100644 index 0000000..380ab74 --- /dev/null +++ b/glib/tests/markups/fail-15.expected @@ -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/tests/markups/fail-15.gmarkup b/glib/tests/markups/fail-15.gmarkup similarity index 100% rename from tests/markups/fail-15.gmarkup rename to glib/tests/markups/fail-15.gmarkup diff --git a/glib/tests/markups/fail-16.expected b/glib/tests/markups/fail-16.expected new file mode 100644 index 0000000..a9f1f82 --- /dev/null +++ b/glib/tests/markups/fail-16.expected @@ -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 diff --git a/tests/markups/fail-16.gmarkup b/glib/tests/markups/fail-16.gmarkup similarity index 100% rename from tests/markups/fail-16.gmarkup rename to glib/tests/markups/fail-16.gmarkup diff --git a/glib/tests/markups/fail-17.expected b/glib/tests/markups/fail-17.expected new file mode 100644 index 0000000..8fce369 --- /dev/null +++ b/glib/tests/markups/fail-17.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 4: Document ended unexpectedly inside an element name diff --git a/tests/markups/fail-17.gmarkup b/glib/tests/markups/fail-17.gmarkup similarity index 100% rename from tests/markups/fail-17.gmarkup rename to glib/tests/markups/fail-17.gmarkup diff --git a/glib/tests/markups/fail-18.expected b/glib/tests/markups/fail-18.expected new file mode 100644 index 0000000..b50f009 --- /dev/null +++ b/glib/tests/markups/fail-18.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 9: Document ended unexpectedly inside an attribute name diff --git a/tests/markups/fail-18.gmarkup b/glib/tests/markups/fail-18.gmarkup similarity index 100% rename from tests/markups/fail-18.gmarkup rename to glib/tests/markups/fail-18.gmarkup diff --git a/glib/tests/markups/fail-19.expected b/glib/tests/markups/fail-19.expected new file mode 100644 index 0000000..8a4300a --- /dev/null +++ b/glib/tests/markups/fail-19.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 6: Document ended unexpectedly inside an element-opening tag. diff --git a/tests/markups/fail-19.gmarkup b/glib/tests/markups/fail-19.gmarkup similarity index 100% rename from tests/markups/fail-19.gmarkup rename to glib/tests/markups/fail-19.gmarkup diff --git a/glib/tests/markups/fail-2.expected b/glib/tests/markups/fail-2.expected new file mode 100644 index 0000000..c7d1b65 --- /dev/null +++ b/glib/tests/markups/fail-2.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 1: Document must begin with an element (e.g. ) diff --git a/tests/markups/fail-2.gmarkup b/glib/tests/markups/fail-2.gmarkup similarity index 100% rename from tests/markups/fail-2.gmarkup rename to glib/tests/markups/fail-2.gmarkup diff --git a/glib/tests/markups/fail-20.expected b/glib/tests/markups/fail-20.expected new file mode 100644 index 0000000..0dc081b --- /dev/null +++ b/glib/tests/markups/fail-20.expected @@ -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/tests/markups/fail-20.gmarkup b/glib/tests/markups/fail-20.gmarkup similarity index 100% rename from tests/markups/fail-20.gmarkup rename to glib/tests/markups/fail-20.gmarkup diff --git a/glib/tests/markups/fail-21.expected b/glib/tests/markups/fail-21.expected new file mode 100644 index 0000000..5b46ce7 --- /dev/null +++ b/glib/tests/markups/fail-21.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 15: Document ended unexpectedly while inside an attribute value diff --git a/tests/markups/fail-21.gmarkup b/glib/tests/markups/fail-21.gmarkup similarity index 100% rename from tests/markups/fail-21.gmarkup rename to glib/tests/markups/fail-21.gmarkup diff --git a/glib/tests/markups/fail-22.expected b/glib/tests/markups/fail-22.expected new file mode 100644 index 0000000..b9585de --- /dev/null +++ b/glib/tests/markups/fail-22.expected @@ -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/tests/markups/fail-22.gmarkup b/glib/tests/markups/fail-22.gmarkup similarity index 100% rename from tests/markups/fail-22.gmarkup rename to glib/tests/markups/fail-22.gmarkup diff --git a/glib/tests/markups/fail-23.expected b/glib/tests/markups/fail-23.expected new file mode 100644 index 0000000..a1b5ce4 --- /dev/null +++ b/glib/tests/markups/fail-23.expected @@ -0,0 +1,4 @@ +ELEMENT 'foo' + TEXT ' +' +ERROR Error on line 2 char 5: Document ended unexpectedly inside an element name diff --git a/tests/markups/fail-23.gmarkup b/glib/tests/markups/fail-23.gmarkup similarity index 100% rename from tests/markups/fail-23.gmarkup rename to glib/tests/markups/fail-23.gmarkup diff --git a/glib/tests/markups/fail-24.expected b/glib/tests/markups/fail-24.expected new file mode 100644 index 0000000..b71005a --- /dev/null +++ b/glib/tests/markups/fail-24.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 44: Document ended unexpectedly inside a comment or processing instruction diff --git a/tests/markups/fail-24.gmarkup b/glib/tests/markups/fail-24.gmarkup similarity index 100% rename from tests/markups/fail-24.gmarkup rename to glib/tests/markups/fail-24.gmarkup diff --git a/glib/tests/markups/fail-25.expected b/glib/tests/markups/fail-25.expected new file mode 100644 index 0000000..063c710 --- /dev/null +++ b/glib/tests/markups/fail-25.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 32: Document ended unexpectedly inside a comment or processing instruction diff --git a/tests/markups/fail-25.gmarkup b/glib/tests/markups/fail-25.gmarkup similarity index 100% rename from tests/markups/fail-25.gmarkup rename to glib/tests/markups/fail-25.gmarkup diff --git a/glib/tests/markups/fail-26.expected b/glib/tests/markups/fail-26.expected new file mode 100644 index 0000000..99ab934 --- /dev/null +++ b/glib/tests/markups/fail-26.expected @@ -0,0 +1,2 @@ +ELEMENT 'foo' +ERROR Error on line 1: Empty entity '&;' seen; valid entities are: & " < > ' diff --git a/tests/markups/fail-26.gmarkup b/glib/tests/markups/fail-26.gmarkup similarity index 100% rename from tests/markups/fail-26.gmarkup rename to glib/tests/markups/fail-26.gmarkup diff --git a/glib/tests/markups/fail-27.expected b/glib/tests/markups/fail-27.expected new file mode 100644 index 0000000..3090f33 --- /dev/null +++ b/glib/tests/markups/fail-27.expected @@ -0,0 +1,2 @@ +ELEMENT 'foo' +ERROR Error on line 1: Entity name '|' is not known diff --git a/tests/markups/fail-27.gmarkup b/glib/tests/markups/fail-27.gmarkup similarity index 100% rename from tests/markups/fail-27.gmarkup rename to glib/tests/markups/fail-27.gmarkup diff --git a/glib/tests/markups/fail-28.expected b/glib/tests/markups/fail-28.expected new file mode 100644 index 0000000..e54ab66 --- /dev/null +++ b/glib/tests/markups/fail-28.expected @@ -0,0 +1,2 @@ +ELEMENT 'foo' +ERROR Error on line 1: Entity name 'am|' is not known diff --git a/tests/markups/fail-28.gmarkup b/glib/tests/markups/fail-28.gmarkup similarity index 100% rename from tests/markups/fail-28.gmarkup rename to glib/tests/markups/fail-28.gmarkup diff --git a/glib/tests/markups/fail-29.expected b/glib/tests/markups/fail-29.expected new file mode 100644 index 0000000..ddc0090 --- /dev/null +++ b/glib/tests/markups/fail-29.expected @@ -0,0 +1,2 @@ +ELEMENT 'foo' +ERROR Error on line 1: Entity name 'bar' is not known diff --git a/tests/markups/fail-29.gmarkup b/glib/tests/markups/fail-29.gmarkup similarity index 100% rename from tests/markups/fail-29.gmarkup rename to glib/tests/markups/fail-29.gmarkup diff --git a/tests/markups/fail-3.gmarkup b/glib/tests/markups/fail-3.gmarkup similarity index 100% rename from tests/markups/fail-3.gmarkup rename to glib/tests/markups/fail-3.gmarkup diff --git a/glib/tests/markups/fail-30.expected b/glib/tests/markups/fail-30.expected new file mode 100644 index 0000000..15169e3 --- /dev/null +++ b/glib/tests/markups/fail-30.expected @@ -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 & diff --git a/tests/markups/fail-30.gmarkup b/glib/tests/markups/fail-30.gmarkup similarity index 100% rename from tests/markups/fail-30.gmarkup rename to glib/tests/markups/fail-30.gmarkup diff --git a/glib/tests/markups/fail-31.expected b/glib/tests/markups/fail-31.expected new file mode 100644 index 0000000..a17ae97 --- /dev/null +++ b/glib/tests/markups/fail-31.expected @@ -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 (ê for example) - perhaps the digit is too large diff --git a/tests/markups/fail-31.gmarkup b/glib/tests/markups/fail-31.gmarkup similarity index 100% rename from tests/markups/fail-31.gmarkup rename to glib/tests/markups/fail-31.gmarkup diff --git a/glib/tests/markups/fail-32.expected b/glib/tests/markups/fail-32.expected new file mode 100644 index 0000000..c3d9c45 --- /dev/null +++ b/glib/tests/markups/fail-32.expected @@ -0,0 +1,2 @@ +ELEMENT 'foo' +ERROR Error on line 1: Character reference '0' does not encode a permitted character diff --git a/tests/markups/fail-32.gmarkup b/glib/tests/markups/fail-32.gmarkup similarity index 100% rename from tests/markups/fail-32.gmarkup rename to glib/tests/markups/fail-32.gmarkup diff --git a/glib/tests/markups/fail-33.expected b/glib/tests/markups/fail-33.expected new file mode 100644 index 0000000..c485463 --- /dev/null +++ b/glib/tests/markups/fail-33.expected @@ -0,0 +1,2 @@ +ELEMENT 'foo' +ERROR Error on line 1: Failed to parse '', which should have been a digit inside a character reference (ê for example) - perhaps the digit is too large diff --git a/tests/markups/fail-33.gmarkup b/glib/tests/markups/fail-33.gmarkup similarity index 100% rename from tests/markups/fail-33.gmarkup rename to glib/tests/markups/fail-33.gmarkup diff --git a/glib/tests/markups/fail-34.expected b/glib/tests/markups/fail-34.expected new file mode 100644 index 0000000..7fac38c --- /dev/null +++ b/glib/tests/markups/fail-34.expected @@ -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 & diff --git a/tests/markups/fail-34.gmarkup b/glib/tests/markups/fail-34.gmarkup similarity index 100% rename from tests/markups/fail-34.gmarkup rename to glib/tests/markups/fail-34.gmarkup diff --git a/glib/tests/markups/fail-35.expected b/glib/tests/markups/fail-35.expected new file mode 100644 index 0000000..15169e3 --- /dev/null +++ b/glib/tests/markups/fail-35.expected @@ -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 & diff --git a/tests/markups/fail-35.gmarkup b/glib/tests/markups/fail-35.gmarkup similarity index 100% rename from tests/markups/fail-35.gmarkup rename to glib/tests/markups/fail-35.gmarkup diff --git a/tests/markups/fail-36.gmarkup b/glib/tests/markups/fail-36.gmarkup similarity index 100% rename from tests/markups/fail-36.gmarkup rename to glib/tests/markups/fail-36.gmarkup diff --git a/glib/tests/markups/fail-37.expected b/glib/tests/markups/fail-37.expected new file mode 100644 index 0000000..f04ec35 --- /dev/null +++ b/glib/tests/markups/fail-37.expected @@ -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/tests/markups/fail-37.gmarkup b/glib/tests/markups/fail-37.gmarkup similarity index 100% rename from tests/markups/fail-37.gmarkup rename to glib/tests/markups/fail-37.gmarkup diff --git a/glib/tests/markups/fail-38.expected b/glib/tests/markups/fail-38.expected new file mode 100644 index 0000000..f25b4cd --- /dev/null +++ b/glib/tests/markups/fail-38.expected @@ -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/tests/markups/fail-38.gmarkup b/glib/tests/markups/fail-38.gmarkup similarity index 100% rename from tests/markups/fail-38.gmarkup rename to glib/tests/markups/fail-38.gmarkup diff --git a/glib/tests/markups/fail-39.expected b/glib/tests/markups/fail-39.expected new file mode 100644 index 0000000..de0e4b8 --- /dev/null +++ b/glib/tests/markups/fail-39.expected @@ -0,0 +1,3 @@ +ELEMENT 'foo' + TEXT 'data' +ERROR Error on line 1 char 12: ' ' is not a valid character following the characters ') diff --git a/tests/markups/fail-4.gmarkup b/glib/tests/markups/fail-4.gmarkup similarity index 100% rename from tests/markups/fail-4.gmarkup rename to glib/tests/markups/fail-4.gmarkup diff --git a/glib/tests/markups/fail-40.expected b/glib/tests/markups/fail-40.expected new file mode 100644 index 0000000..a2b5cbc --- /dev/null +++ b/glib/tests/markups/fail-40.expected @@ -0,0 +1,2 @@ +ELEMENT 'bla' +ERROR Error on line 1: Entity name 'unknownentityname' is not known diff --git a/tests/markups/fail-40.gmarkup b/glib/tests/markups/fail-40.gmarkup similarity index 100% rename from tests/markups/fail-40.gmarkup rename to glib/tests/markups/fail-40.gmarkup diff --git a/glib/tests/markups/fail-5.expected b/glib/tests/markups/fail-5.expected new file mode 100644 index 0000000..7bd0f78 --- /dev/null +++ b/glib/tests/markups/fail-5.expected @@ -0,0 +1 @@ +ERROR Error on line 2 char 1: '|foo' is not a valid name diff --git a/tests/markups/fail-5.gmarkup b/glib/tests/markups/fail-5.gmarkup similarity index 100% rename from tests/markups/fail-5.gmarkup rename to glib/tests/markups/fail-5.gmarkup diff --git a/glib/tests/markups/fail-6.expected b/glib/tests/markups/fail-6.expected new file mode 100644 index 0000000..1c0ea0e --- /dev/null +++ b/glib/tests/markups/fail-6.expected @@ -0,0 +1 @@ +ERROR Error on line 2 char 1: 'foo|' is not a valid name: '|' diff --git a/tests/markups/fail-6.gmarkup b/glib/tests/markups/fail-6.gmarkup similarity index 100% rename from tests/markups/fail-6.gmarkup rename to glib/tests/markups/fail-6.gmarkup diff --git a/glib/tests/markups/fail-7.expected b/glib/tests/markups/fail-7.expected new file mode 100644 index 0000000..09159d6 --- /dev/null +++ b/glib/tests/markups/fail-7.expected @@ -0,0 +1 @@ +ERROR Error on line 1 char 15: 'bar}"baz"' is not a valid name: '}' diff --git a/tests/markups/fail-7.gmarkup b/glib/tests/markups/fail-7.gmarkup similarity index 100% rename from tests/markups/fail-7.gmarkup rename to glib/tests/markups/fail-7.gmarkup diff --git a/glib/tests/markups/fail-8.expected b/glib/tests/markups/fail-8.expected new file mode 100644 index 0000000..2448220 --- /dev/null +++ b/glib/tests/markups/fail-8.expected @@ -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/tests/markups/fail-8.gmarkup b/glib/tests/markups/fail-8.gmarkup similarity index 100% rename from tests/markups/fail-8.gmarkup rename to glib/tests/markups/fail-8.gmarkup diff --git a/glib/tests/markups/fail-9.expected b/glib/tests/markups/fail-9.expected new file mode 100644 index 0000000..9994eb3 --- /dev/null +++ b/glib/tests/markups/fail-9.expected @@ -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' diff --git a/tests/markups/fail-9.gmarkup b/glib/tests/markups/fail-9.gmarkup similarity index 100% rename from tests/markups/fail-9.gmarkup rename to glib/tests/markups/fail-9.gmarkup diff --git a/tests/markups/expected-1 b/glib/tests/markups/valid-1.expected similarity index 100% rename from tests/markups/expected-1 rename to glib/tests/markups/valid-1.expected diff --git a/tests/markups/valid-1.gmarkup b/glib/tests/markups/valid-1.gmarkup similarity index 100% rename from tests/markups/valid-1.gmarkup rename to glib/tests/markups/valid-1.gmarkup diff --git a/tests/markups/expected-10 b/glib/tests/markups/valid-10.expected similarity index 100% rename from tests/markups/expected-10 rename to glib/tests/markups/valid-10.expected diff --git a/tests/markups/valid-10.gmarkup b/glib/tests/markups/valid-10.gmarkup similarity index 100% rename from tests/markups/valid-10.gmarkup rename to glib/tests/markups/valid-10.gmarkup diff --git a/tests/markups/expected-9 b/glib/tests/markups/valid-11.expected similarity index 100% rename from tests/markups/expected-9 rename to glib/tests/markups/valid-11.expected diff --git a/tests/markups/valid-11.gmarkup b/glib/tests/markups/valid-11.gmarkup similarity index 100% rename from tests/markups/valid-11.gmarkup rename to glib/tests/markups/valid-11.gmarkup diff --git a/tests/markups/expected-2 b/glib/tests/markups/valid-2.expected similarity index 100% rename from tests/markups/expected-2 rename to glib/tests/markups/valid-2.expected diff --git a/tests/markups/valid-2.gmarkup b/glib/tests/markups/valid-2.gmarkup similarity index 100% rename from tests/markups/valid-2.gmarkup rename to glib/tests/markups/valid-2.gmarkup diff --git a/tests/markups/expected-3 b/glib/tests/markups/valid-3.expected similarity index 100% rename from tests/markups/expected-3 rename to glib/tests/markups/valid-3.expected diff --git a/tests/markups/valid-3.gmarkup b/glib/tests/markups/valid-3.gmarkup similarity index 100% rename from tests/markups/valid-3.gmarkup rename to glib/tests/markups/valid-3.gmarkup diff --git a/tests/markups/expected-4 b/glib/tests/markups/valid-4.expected similarity index 100% rename from tests/markups/expected-4 rename to glib/tests/markups/valid-4.expected diff --git a/tests/markups/valid-4.gmarkup b/glib/tests/markups/valid-4.gmarkup similarity index 100% rename from tests/markups/valid-4.gmarkup rename to glib/tests/markups/valid-4.gmarkup diff --git a/tests/markups/expected-5 b/glib/tests/markups/valid-5.expected similarity index 100% rename from tests/markups/expected-5 rename to glib/tests/markups/valid-5.expected diff --git a/tests/markups/valid-5.gmarkup b/glib/tests/markups/valid-5.gmarkup similarity index 100% rename from tests/markups/valid-5.gmarkup rename to glib/tests/markups/valid-5.gmarkup diff --git a/tests/markups/expected-6 b/glib/tests/markups/valid-6.expected similarity index 100% rename from tests/markups/expected-6 rename to glib/tests/markups/valid-6.expected diff --git a/tests/markups/valid-6.gmarkup b/glib/tests/markups/valid-6.gmarkup similarity index 100% rename from tests/markups/valid-6.gmarkup rename to glib/tests/markups/valid-6.gmarkup diff --git a/tests/markups/expected-7 b/glib/tests/markups/valid-7.expected similarity index 100% rename from tests/markups/expected-7 rename to glib/tests/markups/valid-7.expected diff --git a/tests/markups/valid-7.gmarkup b/glib/tests/markups/valid-7.gmarkup similarity index 100% rename from tests/markups/valid-7.gmarkup rename to glib/tests/markups/valid-7.gmarkup diff --git a/tests/markups/expected-8 b/glib/tests/markups/valid-8.expected similarity index 100% rename from tests/markups/expected-8 rename to glib/tests/markups/valid-8.expected diff --git a/tests/markups/valid-8.gmarkup b/glib/tests/markups/valid-8.gmarkup similarity index 100% rename from tests/markups/valid-8.gmarkup rename to glib/tests/markups/valid-8.gmarkup diff --git a/tests/markups/expected-11 b/glib/tests/markups/valid-9.expected similarity index 100% rename from tests/markups/expected-11 rename to glib/tests/markups/valid-9.expected diff --git a/tests/markups/valid-9.gmarkup b/glib/tests/markups/valid-9.gmarkup similarity index 100% rename from tests/markups/valid-9.gmarkup rename to glib/tests/markups/valid-9.gmarkup diff --git a/tests/Makefile.am b/tests/Makefile.am index fe47997..6d5c102 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -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 index 6d5f44b..0000000 --- a/tests/markup-test.c +++ /dev/null @@ -1,214 +0,0 @@ -#undef G_DISABLE_ASSERT -#undef G_LOG_DOMAIN - -#include -#include - -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 index 38074cc..0000000 --- a/tests/run-markup-tests.sh +++ /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." -- 2.7.4