summaryrefslogtreecommitdiff
path: root/gtk/gtktestutils.c
diff options
context:
space:
mode:
author18:59:59 Tim Janik <timj@imendio.com>2007-12-05 16:58:44 +0000
committerTim Janik <timj@src.gnome.org>2007-12-05 16:58:44 +0000
commit9ba5da2f3644bdf5494a6b06dce7b6914e44b5af (patch)
tree3137551b1d0f3b9111b76d6c07c6381f2e24942c /gtk/gtktestutils.c
parent4a82f84a28750dd37e03ffc9bbf4cf7fefc3a85a (diff)
downloadgtk+-9ba5da2f3644bdf5494a6b06dce7b6914e44b5af.tar.gz
run tests in current dir after setting up the logging directory, so their
2007-12-05 18:59:59 Tim Janik <timj@imendio.com> * gtk+/Makefile.decl: run tests in current dir after setting up the logging directory, so their results get properly merged into the resulting test log. * gtk+/gtk/gtktestutils.[hc]: added gtk_test_list_all_types() for tests to loop over registered Gdk/Gtk+ types. * gtk+/tests/objecttests.c: new test program, implements automated property tests. several properties are blacklisted because they seem to trigger Gdk/Gtk+ bugs. ./objecttests -m thorough --verbose can be used to test blacklisted properties and see which proprty failed. svn path=/trunk/; revision=19115
Diffstat (limited to 'gtk/gtktestutils.c')
-rw-r--r--gtk/gtktestutils.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/gtk/gtktestutils.c b/gtk/gtktestutils.c
index 001a6a8e78..cafc65723e 100644
--- a/gtk/gtktestutils.c
+++ b/gtk/gtktestutils.c
@@ -60,7 +60,6 @@ gtk_test_init (int *argcp,
* FUTURE TODO:
* - this function could install a mock object around GtkSettings
*/
- // FIXME: g_test_init (argcp, argvp, NULL);
g_setenv ("GTK_MODULES", "", TRUE);
g_setenv ("GTK2_RC_FILES", "/dev/null", TRUE);
gtk_disable_setlocale();
@@ -570,6 +569,25 @@ gtk_test_create_simple_window (const gchar *window_title,
return window;
}
+static GType *all_registered_types = NULL;
+static guint n_all_registered_types = 0;
+
+/**
+ * gtk_test_list_all_types
+ * @n_types: location to store number of types
+ * @returns: 0-terminated array of type ids
+ *
+ * Return the type ids that have been registered after
+ * calling gtk_test_register_all_types().
+ **/
+const GType*
+gtk_test_list_all_types (guint *n_types)
+{
+ if (n_types)
+ *n_types = n_all_registered_types;
+ return all_registered_types;
+}
+
/**
* gtk_test_register_all_types
*
@@ -580,8 +598,17 @@ gtk_test_create_simple_window (const gchar *window_title,
void
gtk_test_register_all_types (void)
{
- volatile GType vgt;
+ if (!all_registered_types)
+ {
+ const guint max_gtk_types = 999;
+ GType *tp;
+ all_registered_types = g_new0 (GType, max_gtk_types);
+ tp = all_registered_types;
#include "gtktypefuncs.c"
+ n_all_registered_types = tp - all_registered_types;
+ g_assert (n_all_registered_types + 1 < max_gtk_types);
+ *tp = 0;
+ }
}
#define __GTK_TEST_UTILS_C__