From a7e1f29f034eb2f78aa923346ccb7b5c49424fbc Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Tue, 2 May 2006 13:01:10 +0000 Subject: [PATCH] added test code from Behdad Esfahbod, see #337128. Tue May 2 15:00:00 2006 Tim Janik * tests/gobject/deftype.c: added test code from Behdad Esfahbod, see #337128. --- ChangeLog | 5 ++++ ChangeLog.pre-2-12 | 5 ++++ tests/gobject/Makefile.am | 1 + tests/gobject/deftype.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 tests/gobject/deftype.c diff --git a/ChangeLog b/ChangeLog index b70598e..0d27dc9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue May 2 15:00:00 2006 Tim Janik + + * tests/gobject/deftype.c: added test code from Behdad Esfahbod, + see #337128. + Tue May 2 14:18:25 2006 Tim Janik * glib/goption.c (g_option_context_parse): fixed leak in short diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index b70598e..0d27dc9 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,8 @@ +Tue May 2 15:00:00 2006 Tim Janik + + * tests/gobject/deftype.c: added test code from Behdad Esfahbod, + see #337128. + Tue May 2 14:18:25 2006 Tim Janik * glib/goption.c (g_option_context_parse): fixed leak in short diff --git a/tests/gobject/Makefile.am b/tests/gobject/Makefile.am index 98a1d49..5d7e01b 100644 --- a/tests/gobject/Makefile.am +++ b/tests/gobject/Makefile.am @@ -46,6 +46,7 @@ CLEANFILES = stamp-testmarshal.h LDADD = libtestgobject.la $(libgobject) test_programs = \ + deftype \ gvalue-test \ paramspec-test \ accumulator \ diff --git a/tests/gobject/deftype.c b/tests/gobject/deftype.c new file mode 100644 index 0000000..924e7ad --- /dev/null +++ b/tests/gobject/deftype.c @@ -0,0 +1,59 @@ +/* deftype.c + * Copyright (C) 2006 Behdad Esfahbod + * + * 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. + */ +#include + +/* see http://bugzilla.gnome.org/show_bug.cgi?id=337128 for the purpose of this test */ + +#define MY_G_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init) { \ + static const GInterfaceInfo g_implement_interface_info = { \ + (GInterfaceInitFunc) iface_init, \ + NULL, \ + NULL \ + }; \ + g_type_add_interface_static (g_define_type_id, TYPE_IFACE, &g_implement_interface_info); \ +} + +#define MY_DEFINE_TYPE(TN, t_n, T_P) \ + G_DEFINE_TYPE_WITH_CODE (TN, t_n, T_P, \ + MY_G_IMPLEMENT_INTERFACE (G_TYPE_INTERFACE, NULL)) + +typedef struct _TypeName { + GObject parent_instance; + const char *name; +} TypeName; + +typedef struct _TypeNameClass { + GObjectClass parent_parent; +} TypeNameClass; + +MY_DEFINE_TYPE (TypeName, type_name, G_TYPE_OBJECT) + +static void type_name_init (TypeName *self) +{ +} + +static void type_name_class_init (TypeNameClass *klass) +{ +} + +int +main (void) +{ + return 0; +} -- 2.7.4