[lasem] tests: option to ignore cairo status result
- From: Emmanuel Pacaud <emmanuel src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [lasem] tests: option to ignore cairo status result
- Date: Sun, 15 Feb 2015 21:47:02 +0000 (UTC)
commit 61a859ee4e643342778dfa8eafd31177dcd563b3
Author: Emmanuel Pacaud <emmanuel gnome org>
Date: Sun Feb 15 22:46:18 2015 +0100
tests: option to ignore cairo status result
tests/Makefile.am | 8 ++++++--
tests/suite.c | 19 ++++++++++++++++++-
tests/suite.ini | 7 +++++++
3 files changed, 31 insertions(+), 3 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b834881..be8b8e1 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,6 +1,8 @@
include $(top_srcdir)/Makefile.decl
-INCLUDES = -g -I$(top_srcdir)/src/ $(LASEM_CFLAGS)
+AM_CPPFLAGS = -g -I$(top_srcdir)/src/ $(LASEM_CFLAGS)
+
+AM_CFLAGS = -Wall
test_progs_ldadd = \
$(top_builddir)/src/liblasem- LASEM_API_VERSION@.la \
@@ -24,4 +26,6 @@ dom_LDADD = $(test_progs_ldadd)
suite_SOURCES = suite.c
suite_LDADD = $(test_progs_ldadd)
-suite_CFLAGS = -DSUITE_DATA_DIRECTORY="\"$(top_srcdir)/tests/data\""
+suite_CFLAGS = -DSUITE_DATA_DIRECTORY="\"$(top_srcdir)/tests/data\""
-DSUITE_OPTION_FILE="\"$(top_srcdir)/tests/suite.ini\""
+
+EXTRA_DIST = suite.ini
diff --git a/tests/suite.c b/tests/suite.c
index b8b9af8..87e83a1 100644
--- a/tests/suite.c
+++ b/tests/suite.c
@@ -2,6 +2,8 @@
#include <string.h>
#include <lsmdom.h>
+GKeyFile *suite_options;
+
static GSList *
build_file_list (const char *path, GRegex *filename_regex)
{
@@ -47,6 +49,7 @@ static void
render_test (gconstpointer user_data)
{
const char *filename = user_data;
+ char *basename;
LsmDomDocument *document;
LsmDomView *view;
LsmBox viewport;
@@ -54,6 +57,8 @@ render_test (gconstpointer user_data)
cairo_t *cairo;
cairo_surface_t *surface;
+ basename = g_path_get_basename (filename);
+
document = lsm_dom_document_new_from_path (filename, NULL);
g_assert (LSM_IS_DOM_DOCUMENT (document));
@@ -76,13 +81,20 @@ render_test (gconstpointer user_data)
if (cairo_status (cairo) == CAIRO_STATUS_SUCCESS) {
lsm_dom_view_render (LSM_DOM_VIEW (view), cairo, 1, 1);
- g_assert (cairo_status (cairo) == CAIRO_STATUS_SUCCESS);
+
+ if (!g_key_file_get_boolean (suite_options, basename, "ignore-cairo-status", NULL)) {
+ if (cairo_status (cairo) != CAIRO_STATUS_SUCCESS)
+ printf ("cairo_status = %s\n", cairo_status_to_string (cairo_status (cairo)));
+ g_assert (cairo_status (cairo) == CAIRO_STATUS_SUCCESS);
+ }
}
cairo_destroy (cairo);
g_object_unref (view);
g_object_unref (document);
+
+ g_free (basename);
}
static void
@@ -107,6 +119,9 @@ main (int argc, char *argv[])
g_type_init ();
#endif
+ suite_options = g_key_file_new ();
+ g_assert (g_key_file_load_from_file (suite_options, SUITE_OPTION_FILE, G_KEY_FILE_NONE, NULL));
+
g_test_init (&argc, &argv, NULL);
filename_regex = g_regex_new ("\\.(svg|mml)$", 0, 0, NULL);
@@ -119,6 +134,8 @@ main (int argc, char *argv[])
g_slist_free (files);
g_regex_unref (filename_regex);
+ g_key_file_free (suite_options);
+
lsm_shutdown ();
return result;
diff --git a/tests/suite.ini b/tests/suite.ini
new file mode 100644
index 0000000..cf770c6
--- /dev/null
+++ b/tests/suite.ini
@@ -0,0 +1,7 @@
+[paint-grad-17-t.svg]
+# out of memory
+ignore-cairo-status=true
+
+[pservers-grad-17-b.svg]
+# out of memory
+ignore-cairo-status=true
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]