From 3bea935316ff048e68dea6a26c2e8e9fd314477f Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Fri, 14 Mar 2003 01:27:58 +0000 Subject: 2003-03-13 Havoc Pennington * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle out of memory * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out of memory * dbus/dbus-connection.h: Make AddWatchFunction and AddTimeoutFunction return a bool so they can fail on out-of-memory * bus/bus.c (bus_context_new): set up timeout handlers * bus/connection.c (bus_connections_setup_connection): set up timeout handlers * glib/dbus-gmain.c: adapt to the fact that set_functions stuff can fail * bus/bus.c (bus_context_new): adapt to changes * bus/connection.c: adapt to changes * test/watch.c: adapt to DBusWatch changes * bus/dispatch.c (bus_dispatch_test): started adding this but didn't finish --- bus/dispatch.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 5 deletions(-) (limited to 'bus/dispatch.c') diff --git a/bus/dispatch.c b/bus/dispatch.c index 59705912..04d68ecc 100644 --- a/bus/dispatch.c +++ b/bus/dispatch.c @@ -27,6 +27,7 @@ #include "services.h" #include "utils.h" #include "bus.h" +#include "test.h" #include #include @@ -142,11 +143,9 @@ send_service_nonexistent_error (BusTransaction *transaction, return TRUE; } -static DBusHandlerResult -bus_dispatch_message_handler (DBusMessageHandler *handler, - DBusConnection *connection, - DBusMessage *message, - void *user_data) +static void +bus_dispatch (DBusConnection *connection, + DBusMessage *message) { const char *sender, *service_name, *message_name; DBusError error; @@ -313,6 +312,15 @@ bus_dispatch_message_handler (DBusMessageHandler *handler, } dbus_connection_unref (connection); +} + +static DBusHandlerResult +bus_dispatch_message_handler (DBusMessageHandler *handler, + DBusConnection *connection, + DBusMessage *message, + void *user_data) +{ + bus_dispatch (connection, message); return DBUS_HANDLER_RESULT_ALLOW_MORE_HANDLERS; } @@ -361,3 +369,70 @@ bus_dispatch_remove_connection (DBusConnection *connection) NULL, NULL); } + + +#ifdef DBUS_BUILD_TESTS + +static void +run_test_bus (BusContext *context) +{ + + +} + +static dbus_bool_t +check_hello_message (BusContext *context, + DBusConnection *connection) +{ + DBusMessage *message; + dbus_int32_t serial; + + message = dbus_message_new (DBUS_SERVICE_DBUS, + DBUS_MESSAGE_HELLO); + + if (message == NULL) + _dbus_assert_not_reached ("no memory"); + + if (!dbus_connection_send (connection, message, &serial)) + _dbus_assert_not_reached ("no memory"); + + return TRUE; +} + +dbus_bool_t +bus_dispatch_test (const DBusString *test_data_dir) +{ + BusContext *context; + DBusError error; + const char *activation_dirs[] = { NULL, NULL }; + DBusConnection *foo; + DBusConnection *bar; + DBusConnection *baz; + DBusResultCode result; + + return TRUE; /* FIXME */ + + dbus_error_init (&error); + context = bus_context_new ("debug:name=test-server", + activation_dirs, + &error); + if (context == NULL) + _dbus_assert_not_reached ("could not alloc context"); + + foo = dbus_connection_open ("debug:name=test-server", &result); + if (foo == NULL) + _dbus_assert_not_reached ("could not alloc connection"); + + bar = dbus_connection_open ("debug:name=test-server", &result); + if (bar == NULL) + _dbus_assert_not_reached ("could not alloc connection"); + + baz = dbus_connection_open ("debug:name=test-server", &result); + if (baz == NULL) + _dbus_assert_not_reached ("could not alloc connection"); + + + + return TRUE; +} +#endif /* DBUS_BUILD_TESTS */ -- cgit