[Telepathy-commits] [telepathy-glib/master] Fix spurious test failures due to moving the zeroing of self_handle.

Will Thompson will.thompson at collabora.co.uk
Tue Sep 23 10:14:37 PDT 2008


These tests never allowed tp_base_connection_finish_shutdown() to be
called, which lead to an assertion failure when the base connection was
disposed.
---
 tests/dbus/connection-getinterfaces-failure.c   |    9 +++++++++
 tests/dbus/finalized-in-invalidated-handler.c   |   12 ++++++++++--
 tests/dbus/invalidated-while-invoking-signals.c |   12 ++++++++++--
 3 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/tests/dbus/connection-getinterfaces-failure.c b/tests/dbus/connection-getinterfaces-failure.c
index 66b9c94..0feb5a2 100644
--- a/tests/dbus/connection-getinterfaces-failure.c
+++ b/tests/dbus/connection-getinterfaces-failure.c
@@ -76,6 +76,12 @@ on_status_changed (TpConnection *connection,
                    GObject *weak_object)
 {
   MYASSERT (status == TP_CONNECTION_STATUS_DISCONNECTED, "%u", status);
+}
+
+static void
+on_shutdown_finished (TpBaseConnection *base_conn,
+                      gpointer user_data)
+{
   g_main_loop_quit (mainloop);
 }
 
@@ -104,6 +110,9 @@ main (int argc,
   MYASSERT (service_conn != NULL, "");
   MYASSERT (service_conn_as_base != NULL, "");
 
+  g_signal_connect (service_conn, "shutdown-finished",
+      G_CALLBACK (on_shutdown_finished), NULL);
+
   MYASSERT (tp_base_connection_register (service_conn_as_base, "simple",
         &name, &conn_path, &error), "");
   MYASSERT_NO_ERROR (error);
diff --git a/tests/dbus/finalized-in-invalidated-handler.c b/tests/dbus/finalized-in-invalidated-handler.c
index ac64ec4..615d225 100644
--- a/tests/dbus/finalized-in-invalidated-handler.c
+++ b/tests/dbus/finalized-in-invalidated-handler.c
@@ -43,8 +43,6 @@ on_invalidated (TpChannel *chan,
   MYASSERT (*client == chan, "%p vs %p", *client, chan);
   g_object_unref (*client);
   *client = NULL;
-
-  g_main_loop_quit (mainloop);
 }
 
 static gboolean
@@ -55,6 +53,13 @@ disconnect (gpointer data)
   return FALSE;
 }
 
+static void
+on_shutdown_finished (TpBaseConnection *base_conn,
+                      gpointer user_data)
+{
+  g_main_loop_quit (mainloop);
+}
+
 int
 main (int argc,
       char **argv)
@@ -84,6 +89,9 @@ main (int argc,
   MYASSERT (service_conn != NULL, "");
   MYASSERT (service_conn_as_base != NULL, "");
 
+  g_signal_connect (service_conn, "shutdown-finished",
+      G_CALLBACK (on_shutdown_finished), NULL);
+
   MYASSERT (tp_base_connection_register (service_conn_as_base, "simple",
         &name, &conn_path, &error), "");
   MYASSERT_NO_ERROR (error);
diff --git a/tests/dbus/invalidated-while-invoking-signals.c b/tests/dbus/invalidated-while-invoking-signals.c
index 2c1846a..7abe803 100644
--- a/tests/dbus/invalidated-while-invoking-signals.c
+++ b/tests/dbus/invalidated-while-invoking-signals.c
@@ -39,8 +39,6 @@ on_status_changed (TpConnection *connection,
   MYASSERT (*client == connection, "%p vs %p", *client, connection);
   g_object_unref (*client);
   *client = NULL;
-
-  g_main_loop_quit (mainloop);
 }
 
 static gboolean
@@ -51,6 +49,13 @@ disconnect (gpointer data)
   return FALSE;
 }
 
+static void
+on_shutdown_finished (TpBaseConnection *base_conn,
+                      gpointer user_data)
+{
+  g_main_loop_quit (mainloop);
+}
+
 int
 main (int argc,
       char **argv)
@@ -75,6 +80,9 @@ main (int argc,
   MYASSERT (service != NULL, "");
   MYASSERT (service_as_base != NULL, "");
 
+  g_signal_connect (service, "shutdown-finished",
+      G_CALLBACK (on_shutdown_finished), NULL);
+
   MYASSERT (tp_base_connection_register (service_as_base, "simple",
         &name, &path, &error), "");
   MYASSERT_NO_ERROR (error);
-- 
1.5.6.5




More information about the Telepathy-commits mailing list