diff options
Diffstat (limited to 'extra/dbus-glib/regression-test-for-fd.o.patch')
-rw-r--r-- | extra/dbus-glib/regression-test-for-fd.o.patch | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/extra/dbus-glib/regression-test-for-fd.o.patch b/extra/dbus-glib/regression-test-for-fd.o.patch deleted file mode 100644 index a65e8a444..000000000 --- a/extra/dbus-glib/regression-test-for-fd.o.patch +++ /dev/null @@ -1,168 +0,0 @@ -From 2a85bd434e6d8dba9615a53d288a0a72d6b5e0cf Mon Sep 17 00:00:00 2001 -From: Simon McVittie <simon.mcvittie@collabora.co.uk> -Date: Thu, 02 Jun 2011 12:50:20 +0000 -Subject: Regression test for fd.o #37852 - -Bug: https://bugs.freedesktop.org/show_bug.cgi?id=37852 -Reviewed-by: Colin Walters <walters@verbum.org> ---- -diff --git a/test/core/my-object.c b/test/core/my-object.c -index ec0e301..0ff5562 100644 ---- a/test/core/my-object.c -+++ b/test/core/my-object.c -@@ -23,6 +23,7 @@ enum - enum - { - FROBNICATE, -+ OBJECTIFIED, - SIG0, - SIG1, - SIG2, -@@ -171,6 +172,15 @@ my_object_class_init (MyObjectClass *mobject_class) - g_cclosure_marshal_VOID__INT, - G_TYPE_NONE, 1, G_TYPE_INT); - -+ signals[OBJECTIFIED] = -+ g_signal_new ("objectified", -+ G_OBJECT_CLASS_TYPE (mobject_class), -+ G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, -+ 0, -+ NULL, NULL, -+ g_cclosure_marshal_VOID__OBJECT, -+ G_TYPE_NONE, 1, G_TYPE_OBJECT); -+ - signals[SIG0] = - g_signal_new ("sig0", - G_OBJECT_CLASS_TYPE (mobject_class), -@@ -866,3 +876,10 @@ my_object_terminate (MyObject *obj, GError **error) - g_main_loop_quit (loop); - return TRUE; - } -+ -+void -+my_object_emit_objectified (MyObject *obj, -+ GObject *other) -+{ -+ g_signal_emit (obj, signals[OBJECTIFIED], 0, other); -+} -diff --git a/test/core/my-object.h b/test/core/my-object.h -index 657140d..3657aa0 100644 ---- a/test/core/my-object.h -+++ b/test/core/my-object.h -@@ -116,4 +116,6 @@ void my_object_async_throw_error (MyObject *obj, DBusGMethodInvocation *context) - - void my_object_unsafe_disable_legacy_property_access (MyObject *obj); - -+void my_object_emit_objectified (MyObject *obj, GObject *other); -+ - #endif -diff --git a/test/core/registrations.c b/test/core/registrations.c -index a316313..d46b15a 100644 ---- a/test/core/registrations.c -+++ b/test/core/registrations.c -@@ -50,6 +50,7 @@ typedef struct { - GObject *object; - DBusMessage *frobnicate1_message; - DBusMessage *frobnicate2_message; -+ gboolean received_objectified; - } Fixture; - - static void -@@ -324,6 +325,71 @@ test_clean_slate (Fixture *f, - f->frobnicate2_message = NULL; - } - -+static DBusHandlerResult -+objectified_cb (DBusConnection *conn, -+ DBusMessage *message, -+ void *user_data) -+{ -+ Fixture *f = user_data; -+ -+ if (dbus_message_is_signal (message, -+ "org.freedesktop.DBus.GLib.Tests.MyObject", "Objectified")) -+ { -+ const char *sender = dbus_message_get_sender (message); -+ const char *path = dbus_message_get_path (message); -+ dbus_bool_t ok; -+ DBusError e; -+ -+ dbus_error_init (&e); -+ -+ g_assert (sender != NULL); -+ g_assert (path != NULL); -+ -+ g_assert_cmpstr (path, ==, "/foo"); -+ g_assert_cmpstr (sender, ==, dbus_bus_get_unique_name ( -+ dbus_g_connection_get_connection (f->bus))); -+ -+ path = NULL; -+ ok = dbus_message_get_args (message, &e, -+ DBUS_TYPE_OBJECT_PATH, &path, -+ DBUS_TYPE_INVALID); -+ -+ if (dbus_error_is_set (&e)) -+ g_error ("%s: %s", e.name, e.message); -+ -+ g_assert (ok); -+ g_assert_cmpstr (path, ==, "/foo"); -+ -+ f->received_objectified = TRUE; -+ } -+ -+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -+} -+ -+static void -+test_marshal_object (Fixture *f, -+ gconstpointer test_data G_GNUC_UNUSED) -+{ -+ dbus_bool_t mem; -+ -+ g_test_bug ("37852"); -+ -+ dbus_g_connection_register_g_object (f->bus, "/foo", f->object); -+ g_assert (dbus_g_connection_lookup_g_object (f->bus, "/foo") == -+ f->object); -+ -+ dbus_bus_add_match (dbus_g_connection_get_connection (f->bus), -+ "type='signal'", NULL); -+ mem = dbus_connection_add_filter (dbus_g_connection_get_connection (f->bus), -+ objectified_cb, f, NULL); -+ g_assert (mem); -+ -+ my_object_emit_objectified ((MyObject *) f->object, f->object); -+ -+ while (!f->received_objectified) -+ g_main_context_iteration (NULL, TRUE); -+} -+ - int - main (int argc, char **argv) - { -@@ -349,6 +415,8 @@ main (int argc, char **argv) - setup, test_twice, teardown); - g_test_add ("/registrations/clean-slate", Fixture, NULL, - setup, test_clean_slate, teardown); -+ g_test_add ("/registrations/marshal-object", Fixture, NULL, -+ setup, test_marshal_object, teardown); - - return g_test_run (); - } -diff --git a/test/core/test-service-glib.xml b/test/core/test-service-glib.xml -index 94a836a..1b595cc 100644 ---- a/test/core/test-service-glib.xml -+++ b/test/core/test-service-glib.xml -@@ -184,6 +184,10 @@ - <!-- Export signals --> - <signal name="Frobnicate"/> - -+ <signal name="Objectified"> -+ <arg type="o"/> -+ </signal> -+ - <method name="Terminate"> - </method> - </interface> --- -cgit v0.8.3-6-g21f6 |