tests: Use dbus_clear_connection etc. in a couple of tests
authorSimon McVittie <smcv@collabora.com>
Fri, 21 Jul 2017 18:15:05 +0000 (19:15 +0100)
committerSimon McVittie <smcv@debian.org>
Sun, 30 Jul 2017 07:49:22 +0000 (08:49 +0100)
This is just enough to demonstrate that they work - I'm deliberately
not doing a mass change throughout all tests, and we should definitely
not rush to introduce these into production code, because it would
hinder cherry-picking and merging fixes between branches. However,
new code on master can use them freely.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101895

test/dbus-daemon.c
test/loopback.c

index 719640e..deba3b5 100644 (file)
@@ -125,7 +125,7 @@ echo_filter (DBusConnection *connection,
   if (!dbus_connection_send (connection, reply, NULL))
     g_error ("OOM");
 
-  dbus_message_unref (reply);
+  dbus_clear_message (&reply);
 
   return DBUS_HANDLER_RESULT_HANDLED;
 }
@@ -287,8 +287,8 @@ test_echo (Fixture *f,
             NULL))
         g_error ("OOM");
 
-      dbus_pending_call_unref (pc);
-      dbus_message_unref (m);
+      dbus_clear_pending_call (&pc);
+      dbus_clear_message (&m);
     }
 
   while (received < count)
@@ -341,8 +341,8 @@ test_no_reply (Fixture *f,
         &reply, NULL))
     g_error ("OOM");
 
-  dbus_pending_call_unref (pc);
-  dbus_message_unref (m);
+  dbus_clear_pending_call (&pc);
+  dbus_clear_message (&m);
 
   if (mode == DISCONNECT)
     {
@@ -351,8 +351,7 @@ test_no_reply (Fixture *f,
 
       dbus_connection_remove_filter (f->right_conn, echo_filter, f);
       dbus_connection_close (f->right_conn);
-      dbus_connection_unref (f->right_conn);
-      f->right_conn = NULL;
+      dbus_clear_connection (&f->right_conn);
     }
 
   while (reply == NULL)
@@ -373,7 +372,7 @@ test_no_reply (Fixture *f,
     g_assert_cmpstr (f->e.message, ==,
         "Message did not receive a reply (timeout by message bus)");
 
-  dbus_message_unref (reply);
+  dbus_clear_message (&reply);
 }
 
 static void
@@ -408,8 +407,7 @@ test_creds (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -534,8 +532,8 @@ test_creds (Fixture *f,
   g_assert (seen & SEEN_WINDOWS_SID);
 #endif
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -562,8 +560,7 @@ test_processid (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -607,8 +604,8 @@ test_processid (Fixture *f,
       g_error ("Unexpected error: %s: %s", error.name, error.message);
     }
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -637,8 +634,7 @@ test_canonical_path_uae (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -653,9 +649,8 @@ test_canonical_path_uae (Fixture *f,
   g_assert_cmpint (dbus_message_get_type (m), ==,
       DBUS_MESSAGE_TYPE_METHOD_RETURN);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
-  pc = NULL;
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 
   /* Now try with the wrong object path */
   m = dbus_message_new_method_call (DBUS_SERVICE_DBUS,
@@ -677,8 +672,7 @@ test_canonical_path_uae (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -695,8 +689,8 @@ test_canonical_path_uae (Fixture *f,
       DBUS_ERROR_ACCESS_DENIED);
   g_assert_cmpstr (dbus_message_get_signature (m), ==, "s");
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -733,13 +727,11 @@ test_max_connections (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_LIMITS_EXCEEDED);
 
   if (failing_conn != NULL)
-    {
-      dbus_connection_close (failing_conn);
-      dbus_connection_unref (failing_conn);
-    }
+    dbus_connection_close (failing_conn);
 
+  dbus_clear_connection (&failing_conn);
   dbus_connection_close (third_conn);
-  dbus_connection_unref (third_conn);
+  dbus_clear_connection (&third_conn);
 }
 
 static void
@@ -827,8 +819,8 @@ test_max_replies_per_connection (Fixture *f,
       if (!dbus_connection_send (f->right_conn, reply, NULL))
         g_error ("OOM");
 
-      dbus_message_unref (reply);
-      dbus_message_unref (m);
+      dbus_clear_message (&m);
+      dbus_clear_message (&reply);
     }
 
   /* Wait for all 5 replies to come in. */
@@ -844,7 +836,7 @@ test_max_replies_per_connection (Fixture *f,
       if (dbus_set_error_from_message (&error, m))
         g_error ("Unexpected error: %s: %s", error.name, error.message);
 
-      dbus_message_unref (m);
+      dbus_clear_message (&m);
     }
 
   /* The last two failed. */
@@ -858,7 +850,7 @@ test_max_replies_per_connection (Fixture *f,
 
       g_assert_cmpstr (error.name, ==, DBUS_ERROR_LIMITS_EXCEEDED);
       dbus_error_free (&error);
-      dbus_message_unref (m);
+      dbus_clear_message (&m);
     }
 
   g_assert_cmpuint (g_queue_get_length (&received), ==, 0);
@@ -1234,8 +1226,7 @@ test_peer_get_machine_id (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1255,8 +1246,8 @@ test_peer_get_machine_id (Fixture *f,
   g_assert_nonnull (what_daemon_thinks);
   g_assert_cmpuint (strlen (what_daemon_thinks), ==, 32);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
   dbus_free (what_i_think);
 }
 
@@ -1281,8 +1272,7 @@ test_peer_ping (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1296,8 +1286,8 @@ test_peer_ping (Fixture *f,
   if (!dbus_message_get_args (m, &error, DBUS_TYPE_INVALID))
     g_error ("%s: %s", error.name, error.message);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1324,8 +1314,7 @@ test_get_invalid_path (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1343,8 +1332,8 @@ test_get_invalid_path (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNKNOWN_INTERFACE);
   dbus_error_free (&error);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1371,8 +1360,7 @@ test_get_invalid_iface (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1389,8 +1377,8 @@ test_get_invalid_iface (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNKNOWN_INTERFACE);
   dbus_error_free (&error);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1417,8 +1405,7 @@ test_get_invalid (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1435,8 +1422,8 @@ test_get_invalid (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNKNOWN_PROPERTY);
   dbus_error_free (&error);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1461,8 +1448,7 @@ test_get_all_invalid_iface (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1479,8 +1465,8 @@ test_get_all_invalid_iface (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNKNOWN_INTERFACE);
   dbus_error_free (&error);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1505,8 +1491,7 @@ test_get_all_invalid_path (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1524,8 +1509,8 @@ test_get_all_invalid_path (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNKNOWN_INTERFACE);
   dbus_error_free (&error);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1563,8 +1548,7 @@ test_set_invalid_iface (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1581,8 +1565,8 @@ test_set_invalid_iface (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNKNOWN_INTERFACE);
   dbus_error_free (&error);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1620,8 +1604,7 @@ test_set_invalid_path (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1638,8 +1621,8 @@ test_set_invalid_path (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNKNOWN_INTERFACE);
   dbus_error_free (&error);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1677,8 +1660,7 @@ test_set_invalid (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1695,8 +1677,8 @@ test_set_invalid (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNKNOWN_PROPERTY);
   dbus_error_free (&error);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1734,8 +1716,7 @@ test_set (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1752,8 +1733,8 @@ test_set (Fixture *f,
   g_assert_cmpstr (error.name, ==, DBUS_ERROR_PROPERTY_READ_ONLY);
   dbus_error_free (&error);
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1819,8 +1800,7 @@ test_features (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1843,8 +1823,8 @@ test_features (Fixture *f,
   if (dbus_message_iter_next (&args_iter))
     g_error ("Reply has too many arguments");
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1925,8 +1905,7 @@ test_interfaces (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -1949,8 +1928,8 @@ test_interfaces (Fixture *f,
   if (dbus_message_iter_next (&args_iter))
     g_error ("Reply has too many arguments");
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -1980,8 +1959,7 @@ test_get_all (Fixture *f,
       pc == NULL)
     g_error ("OOM");
 
-  dbus_message_unref (m);
-  m = NULL;
+  dbus_clear_message (&m);
 
   if (dbus_pending_call_get_completed (pc))
     test_pending_call_store_reply (pc, &m);
@@ -2032,8 +2010,8 @@ test_get_all (Fixture *f,
   if (dbus_message_iter_next (&args_iter))
     g_error ("Reply has too many arguments");
 
-  dbus_message_unref (m);
-  dbus_pending_call_unref (pc);
+  dbus_clear_message (&m);
+  dbus_clear_pending_call (&pc);
 }
 
 static void
@@ -2044,11 +2022,7 @@ teardown (Fixture *f,
   g_clear_error (&f->ge);
 
   if (f->left_conn != NULL)
-    {
-      dbus_connection_close (f->left_conn);
-      dbus_connection_unref (f->left_conn);
-      f->left_conn = NULL;
-    }
+    dbus_connection_close (f->left_conn);
 
   if (f->right_conn != NULL)
     {
@@ -2068,10 +2042,11 @@ teardown (Fixture *f,
       g_queue_clear (&f->held_messages);
 
       dbus_connection_close (f->right_conn);
-      dbus_connection_unref (f->right_conn);
-      f->right_conn = NULL;
     }
 
+  dbus_clear_connection (&f->left_conn);
+  dbus_clear_connection (&f->right_conn);
+
   if (f->daemon_pid != 0)
     {
       test_kill_pid (f->daemon_pid);
index 567cf80..59f4a28 100644 (file)
@@ -316,8 +316,7 @@ test_bad_guid (Fixture *f,
   g_assert_cmpstr (dbus_message_get_signature (incoming), ==, "");
   g_assert_cmpstr (dbus_message_get_path (incoming), ==, DBUS_PATH_LOCAL);
 
-  dbus_message_unref (incoming);
-
+  dbus_clear_message (&incoming);
   dbus_free (address);
 }
 
@@ -360,9 +359,8 @@ test_message (Fixture *f,
   g_assert_cmpstr (dbus_message_get_path (incoming), ==, "/com/example/Hello");
   g_assert_cmpuint (dbus_message_get_serial (incoming), ==, serial);
 
-  dbus_message_unref (incoming);
-
-  dbus_message_unref (outgoing);
+  dbus_clear_message (&incoming);
+  dbus_clear_message (&outgoing);
 }
 
 static void
@@ -370,26 +368,18 @@ teardown (Fixture *f,
     gconstpointer addr G_GNUC_UNUSED)
 {
   if (f->client_conn != NULL)
-    {
-      dbus_connection_close (f->client_conn);
-      dbus_connection_unref (f->client_conn);
-      f->client_conn = NULL;
-    }
+    dbus_connection_close (f->client_conn);
 
   if (f->server_conn != NULL)
-    {
-      dbus_connection_close (f->server_conn);
-      dbus_connection_unref (f->server_conn);
-      f->server_conn = NULL;
-    }
+    dbus_connection_close (f->server_conn);
+
+  dbus_clear_connection (&f->client_conn);
+  dbus_clear_connection (&f->server_conn);
 
   if (f->server != NULL)
-    {
-      dbus_server_disconnect (f->server);
-      dbus_server_unref (f->server);
-      f->server = NULL;
-    }
+    dbus_server_disconnect (f->server);
 
+  dbus_clear_server (&f->server);
   test_main_context_unref (f->ctx);
 }