diff options
-rw-r--r-- | gobject/tests/Makefile.am | 14 | ||||
-rw-r--r-- | gobject/tests/ifaceproperties.c (renamed from tests/gobject/ifaceproperties.c) | 0 | ||||
-rw-r--r-- | gobject/tests/testcommon.h | 100 | ||||
-rw-r--r-- | tests/gobject/Makefile.am | 1 |
4 files changed, 103 insertions, 12 deletions
diff --git a/gobject/tests/Makefile.am b/gobject/tests/Makefile.am index eec8c5e8c..845216422 100644 --- a/gobject/tests/Makefile.am +++ b/gobject/tests/Makefile.am @@ -3,15 +3,7 @@ include $(top_srcdir)/Makefile.decl INCLUDES = -g $(gobject_INCLUDES) $(GLIB_DEBUG_FLAGS) noinst_PROGRAMS = $(TEST_PROGS) -libgobject_LDADD = ../libgobject-2.0.la $(top_builddir)/gthread/libgthread-2.0.la $(top_builddir)/glib/libglib-2.0.la +LDADD = ../libgobject-2.0.la $(top_builddir)/gthread/libgthread-2.0.la $(top_builddir)/glib/libglib-2.0.la -TEST_PROGS += threadtests dynamictests binding properties reference -threadtests_SOURCES = threadtests.c -threadtests_LDADD = $(libgobject_LDADD) -dynamictests_SOURCES = dynamictests.c -dynamictests_LDADD = $(libgobject_LDADD) -binding_SOURCES = binding.c -binding_LDADD = $(libgobject_LDADD) -properties_SOURCES = properties.c -properties_LDADD = $(libgobject_LDADD) -reference_LDADD = $(libgobject_LDADD) +TEST_PROGS += threadtests dynamictests binding properties reference ifaceproperties +ifaceproperties_SOURCES = ifaceproperties.c testcommon.h diff --git a/tests/gobject/ifaceproperties.c b/gobject/tests/ifaceproperties.c index 14762fb6e..14762fb6e 100644 --- a/tests/gobject/ifaceproperties.c +++ b/gobject/tests/ifaceproperties.c diff --git a/gobject/tests/testcommon.h b/gobject/tests/testcommon.h new file mode 100644 index 000000000..7bfef05c8 --- /dev/null +++ b/gobject/tests/testcommon.h @@ -0,0 +1,100 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2003 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __TEST_COMMON_H__ +#define __TEST_COMMON_H__ + +G_BEGIN_DECLS + +#define DEFINE_TYPE_FULL(name, prefix, \ + class_init, base_init, instance_init, \ + parent_type, interface_decl) \ +GType \ +prefix ## _get_type (void) \ +{ \ + static GType object_type = 0; \ + \ + if (!object_type) \ + { \ + static const GTypeInfo object_info = \ + { \ + sizeof (name ## Class), \ + (GBaseInitFunc) base_init, \ + (GBaseFinalizeFunc) NULL, \ + (GClassInitFunc) class_init, \ + (GClassFinalizeFunc) NULL, \ + NULL, /* class_data */ \ + sizeof (name), \ + 0, /* n_prelocs */ \ + (GInstanceInitFunc) instance_init \ + }; \ + \ + object_type = g_type_register_static (parent_type, \ + # name, \ + &object_info, 0); \ + interface_decl \ + } \ + \ + return object_type; \ +} + +#define DEFINE_TYPE(name, prefix, \ + class_init, base_init, instance_init, \ + parent_type) \ + DEFINE_TYPE_FULL(name, prefix, class_init, base_init, \ + instance_init, parent_type, {}) + +#define DEFINE_IFACE(name, prefix, base_init, dflt_init) \ +GType \ +prefix ## _get_type (void) \ +{ \ + static GType iface_type = 0; \ + \ + if (!iface_type) \ + { \ + static const GTypeInfo iface_info = \ + { \ + sizeof (name ## Class), \ + (GBaseInitFunc) base_init, \ + (GBaseFinalizeFunc) NULL, \ + (GClassInitFunc) dflt_init, \ + }; \ + \ + iface_type = g_type_register_static (G_TYPE_INTERFACE, \ + # name, \ + &iface_info, 0); \ + } \ + return iface_type; \ +} + +#define INTERFACE_FULL(type, init_func, iface_type) \ +{ \ + static GInterfaceInfo const iface = \ + { \ + (GInterfaceInitFunc) init_func, NULL, NULL \ + }; \ + \ + g_type_add_interface_static (type, iface_type, &iface); \ +} +#define INTERFACE(init_func, iface_type) \ + INTERFACE_FULL(object_type, init_func, iface_type) + +G_END_DECLS + +#endif /* __TEST_COMMON_H__ */ diff --git a/tests/gobject/Makefile.am b/tests/gobject/Makefile.am index cf97ac3cf..0ab5bf64c 100644 --- a/tests/gobject/Makefile.am +++ b/tests/gobject/Makefile.am @@ -61,7 +61,6 @@ test_programs = \ ifacecheck \ ifaceinit \ ifaceinherit \ - ifaceproperties \ override \ performance \ performance-threaded \ |