diff options
author | 18:59:59 Tim Janik <timj@imendio.com> | 2007-12-05 16:58:44 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 2007-12-05 16:58:44 +0000 |
commit | 9ba5da2f3644bdf5494a6b06dce7b6914e44b5af (patch) | |
tree | 3137551b1d0f3b9111b76d6c07c6381f2e24942c /gtk/gtktestutils.c | |
parent | 4a82f84a28750dd37e03ffc9bbf4cf7fefc3a85a (diff) | |
download | gtk+-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.c | 31 |
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__ |