added test code from Behdad Esfahbod, see #337128.
authorTim Janik <timj@gtk.org>
Tue, 2 May 2006 13:01:10 +0000 (13:01 +0000)
committerTim Janik <timj@src.gnome.org>
Tue, 2 May 2006 13:01:10 +0000 (13:01 +0000)
Tue May  2 15:00:00 2006  Tim Janik  <timj@gtk.org>

        * tests/gobject/deftype.c: added test code from Behdad Esfahbod,
        see #337128.

ChangeLog
ChangeLog.pre-2-12
tests/gobject/Makefile.am
tests/gobject/deftype.c [new file with mode: 0644]

index b70598e..0d27dc9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue May  2 15:00:00 2006  Tim Janik  <timj@gtk.org>
+
+       * tests/gobject/deftype.c: added test code from Behdad Esfahbod, 
+       see #337128.
+
 Tue May  2 14:18:25 2006  Tim Janik  <timj@gtk.org>
 
        * glib/goption.c (g_option_context_parse): fixed leak in short
index b70598e..0d27dc9 100644 (file)
@@ -1,3 +1,8 @@
+Tue May  2 15:00:00 2006  Tim Janik  <timj@gtk.org>
+
+       * tests/gobject/deftype.c: added test code from Behdad Esfahbod, 
+       see #337128.
+
 Tue May  2 14:18:25 2006  Tim Janik  <timj@gtk.org>
 
        * glib/goption.c (g_option_context_parse): fixed leak in short
index 98a1d49..5d7e01b 100644 (file)
@@ -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 (file)
index 0000000..924e7ad
--- /dev/null
@@ -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 <glib-object.h>
+
+/* 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;
+}