2 #include "test-utils.h"
7 DBusConnection *connection;
12 add_watch (DBusWatch *watch,
17 return _dbus_loop_add_watch (cd->loop, watch);
21 remove_watch (DBusWatch *watch,
26 _dbus_loop_remove_watch (cd->loop, watch);
30 add_timeout (DBusTimeout *timeout,
35 return _dbus_loop_add_timeout (cd->loop, timeout);
39 remove_timeout (DBusTimeout *timeout,
44 _dbus_loop_remove_timeout (cd->loop, timeout);
48 dispatch_status_function (DBusConnection *connection,
49 DBusDispatchStatus new_status,
52 DBusLoop *loop = data;
54 if (new_status != DBUS_DISPATCH_COMPLETE)
56 while (!_dbus_loop_queue_dispatch (loop, connection))
57 _dbus_wait_for_memory ();
62 cdata_free (void *data)
66 dbus_connection_unref (cd->connection);
67 _dbus_loop_unref (cd->loop);
73 cdata_new (DBusLoop *loop,
74 DBusConnection *connection)
78 cd = dbus_new0 (CData, 1);
83 cd->connection = connection;
85 dbus_connection_ref (cd->connection);
86 _dbus_loop_ref (cd->loop);
92 test_connection_setup (DBusLoop *loop,
93 DBusConnection *connection)
99 dbus_connection_set_dispatch_status_function (connection, dispatch_status_function,
102 cd = cdata_new (loop, connection);
106 /* Because dbus-mainloop.c checks dbus_timeout_get_enabled(),
107 * dbus_watch_get_enabled() directly, we don't have to provide
108 * "toggled" callbacks.
111 if (!dbus_connection_set_watch_functions (connection,
119 cd = cdata_new (loop, connection);
123 if (!dbus_connection_set_timeout_functions (connection,
130 if (dbus_connection_get_dispatch_status (connection) != DBUS_DISPATCH_COMPLETE)
132 if (!_dbus_loop_queue_dispatch (loop, connection))
142 dbus_connection_set_dispatch_status_function (connection, NULL, NULL, NULL);
143 dbus_connection_set_watch_functions (connection, NULL, NULL, NULL, NULL, NULL);
144 dbus_connection_set_timeout_functions (connection, NULL, NULL, NULL, NULL, NULL);
150 test_connection_shutdown (DBusLoop *loop,
151 DBusConnection *connection)
153 if (!dbus_connection_set_watch_functions (connection,
158 _dbus_assert_not_reached ("setting watch functions to NULL failed");
160 if (!dbus_connection_set_timeout_functions (connection,
165 _dbus_assert_not_reached ("setting timeout functions to NULL failed");
167 dbus_connection_set_dispatch_status_function (connection, NULL, NULL, NULL);
177 serverdata_free (void *data)
179 ServerData *sd = data;
181 dbus_server_unref (sd->server);
182 _dbus_loop_unref (sd->loop);
188 serverdata_new (DBusLoop *loop,
193 sd = dbus_new0 (ServerData, 1);
200 dbus_server_ref (sd->server);
201 _dbus_loop_ref (sd->loop);
207 add_server_watch (DBusWatch *watch,
210 ServerData *context = data;
212 return _dbus_loop_add_watch (context->loop, watch);
216 remove_server_watch (DBusWatch *watch,
219 ServerData *context = data;
221 _dbus_loop_remove_watch (context->loop, watch);
225 add_server_timeout (DBusTimeout *timeout,
228 ServerData *context = data;
230 return _dbus_loop_add_timeout (context->loop, timeout);
234 remove_server_timeout (DBusTimeout *timeout,
237 ServerData *context = data;
239 _dbus_loop_remove_timeout (context->loop, timeout);
243 test_server_setup (DBusLoop *loop,
248 sd = serverdata_new (loop, server);
252 if (!dbus_server_set_watch_functions (server,
262 sd = serverdata_new (loop, server);
266 if (!dbus_server_set_timeout_functions (server,
268 remove_server_timeout,
270 sd, serverdata_free))
278 serverdata_free (sd);
280 test_server_shutdown (loop, server);
286 test_server_shutdown (DBusLoop *loop,
289 dbus_server_disconnect (server);
291 if (!dbus_server_set_watch_functions (server,
295 _dbus_assert_not_reached ("setting watch functions to NULL failed");
297 if (!dbus_server_set_timeout_functions (server,
301 _dbus_assert_not_reached ("setting timeout functions to NULL failed");