summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.com>2011-10-29 15:00:26 +0200
committerTomeu Vizoso <tomeu.vizoso@collabora.com>2011-10-29 15:00:26 +0200
commit22e225a7af5fb2f5f5b6598f6c42be2b960eb5f7 (patch)
treef8c2f380a550d65c67dfb34b39844c51b556d650
parent0387e8e7ce54fef1d25539c9befb22c2c6bbf153 (diff)
downloadgobject-introspection-22e225a7af5fb2f5f5b6598f6c42be2b960eb5f7.tar.gz
Add tests for chaining up from vfuncs to ancestors
-rw-r--r--tests/gimarshallingtests.c22
-rw-r--r--tests/gimarshallingtests.h28
2 files changed, 50 insertions, 0 deletions
diff --git a/tests/gimarshallingtests.c b/tests/gimarshallingtests.c
index 073d153a..41f86206 100644
--- a/tests/gimarshallingtests.c
+++ b/tests/gimarshallingtests.c
@@ -3734,9 +3734,19 @@ gi_marshalling_tests_sub_object_finalize (GObject *object)
}
static void
+method_deep_hierarchy (GIMarshallingTestsObject *self, gint8 in)
+{
+ GValue val = {0, };
+ g_value_init (&val, G_TYPE_INT);
+ g_value_set_int (&val, in);
+ g_object_set_property (G_OBJECT (self), "int", &val);
+}
+
+static void
gi_marshalling_tests_sub_object_class_init (GIMarshallingTestsSubObjectClass *klass)
{
G_OBJECT_CLASS(klass)->finalize = gi_marshalling_tests_sub_object_finalize;
+ GI_MARSHALLING_TESTS_OBJECT_CLASS(klass)->method_deep_hierarchy = method_deep_hierarchy;
}
void
@@ -3751,6 +3761,18 @@ gi_marshalling_tests_sub_object_overwritten_method (GIMarshallingTestsSubObject
g_assert(GI_MARSHALLING_TESTS_OBJECT(object)->int_ == 0);
}
+G_DEFINE_TYPE (GIMarshallingTestsSubSubObject, gi_marshalling_tests_sub_sub_object, GI_MARSHALLING_TESTS_TYPE_SUB_OBJECT);
+
+static void
+gi_marshalling_tests_sub_sub_object_init (GIMarshallingTestsSubSubObject *object)
+{
+}
+
+static void
+gi_marshalling_tests_sub_sub_object_class_init (GIMarshallingTestsSubSubObjectClass *klass)
+{
+}
+
/* Interfaces */
static void
diff --git a/tests/gimarshallingtests.h b/tests/gimarshallingtests.h
index 388ee051..b9d5093d 100644
--- a/tests/gimarshallingtests.h
+++ b/tests/gimarshallingtests.h
@@ -635,6 +635,12 @@ struct _GIMarshallingTestsObjectClass
* @in: (in):
*/
void (* method_with_default_implementation) (GIMarshallingTestsObject *self, gint8 in);
+
+ /**
+ * GIMarshallingTestsObjectClass::method_deep_hierarchy:
+ * @in: (in):
+ */
+ void (* method_deep_hierarchy) (GIMarshallingTestsObject *self, gint8 in);
};
struct _GIMarshallingTestsObject
@@ -701,6 +707,28 @@ GType gi_marshalling_tests_sub_object_get_type (void) G_GNUC_CONST;
void gi_marshalling_tests_sub_object_sub_method (GIMarshallingTestsSubObject *object);
void gi_marshalling_tests_sub_object_overwritten_method (GIMarshallingTestsSubObject *object);
+#define GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT (gi_marshalling_tests_sub_sub_object_get_type ())
+#define GI_MARSHALLING_TESTS_SUB_SUB_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT, GIMarshallingTestsSubSubObject))
+#define GI_MARSHALLING_TESTS_SUB_SUB_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT, GIMarshallingTestsSubSubObjectClass))
+#define GI_MARSHALLING_TESTS_IS_SUB_SUB_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT))
+#define GI_MARSHALLING_TESTS_IS_SUB_SUB_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT))
+#define GI_MARSHALLING_TESTS_SUB_SUB_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT, GIMarshallingTestsSubSubObjectClass))
+
+typedef struct _GIMarshallingTestsSubSubObjectClass GIMarshallingTestsSubSubObjectClass;
+typedef struct _GIMarshallingTestsSubSubObject GIMarshallingTestsSubSubObject;
+
+struct _GIMarshallingTestsSubSubObjectClass
+{
+ GIMarshallingTestsSubObjectClass parent_class;
+};
+
+struct _GIMarshallingTestsSubSubObject
+{
+ GIMarshallingTestsSubObject parent_instance;
+};
+
+GType gi_marshalling_tests_sub_sub_object_get_type (void) G_GNUC_CONST;
+
/* Interfaces */
#define GI_MARSHALLING_TESTS_TYPE_INTERFACE (gi_marshalling_tests_interface_get_type ())