X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bus%2Fdispatch.c;h=c540e6ce5f9050daf7afc574507d82ed99dbc1d5;hb=1200c464b6c9051340960e07f0d61a51dad71286;hp=afb85a7397c22c9aae3f9dc885981c77127f4f14;hpb=df89cfeb3808acc213c9620db6988611a34207c5;p=platform%2Fupstream%2Fdbus.git diff --git a/bus/dispatch.c b/bus/dispatch.c index afb85a7..c540e6c 100644 --- a/bus/dispatch.c +++ b/bus/dispatch.c @@ -6,7 +6,7 @@ * Copyright (C) 2004 Imendio HB * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -16,7 +16,7 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA @@ -34,18 +34,19 @@ #include "signals.h" #include "test.h" #include +#include #include +#include "kdbus-d.h" #ifdef HAVE_UNIX_FD_PASSING #include #include #endif -#ifdef DBUS_UNIX -#define TEST_CONNECTION "debug-pipe:name=test-server" -#else -#define TEST_CONNECTION "tcp:host=localhost,port=1234" -#endif +/* This is hard-coded in the files in valid-config-files-*. We have to use + * the debug-pipe transport because the tests in this file require that + * dbus_connection_open_private() does not block. */ +#define TEST_DEBUG_PIPE "debug-pipe:name=test-server" static dbus_bool_t send_one_message (DBusConnection *connection, @@ -67,7 +68,7 @@ send_one_message (DBusConnection *connection, if (dbus_message_contains_unix_fds(message) && !dbus_connection_can_send_type(connection, DBUS_TYPE_UNIX_FD)) return TRUE; /* silently don't send it */ - + if (!bus_transaction_send (transaction, connection, message)) @@ -161,7 +162,7 @@ bus_dispatch_matches (BusTransaction *transaction, } _dbus_list_clear (&recipients); - + if (dbus_error_is_set (&tmp_error)) { dbus_move_error (&tmp_error, error); @@ -181,25 +182,25 @@ bus_dispatch (DBusConnection *connection, BusContext *context; DBusHandlerResult result; DBusConnection *addressed_recipient; - + result = DBUS_HANDLER_RESULT_HANDLED; - + transaction = NULL; addressed_recipient = NULL; dbus_error_init (&error); - + context = bus_connection_get_context (connection); _dbus_assert (context != NULL); - + /* If we can't even allocate an OOM error, we just go to sleep * until we can. */ while (!bus_connection_preallocate_oom_error (connection)) _dbus_wait_for_memory (); - + /* Ref connection in case we disconnect it at some point in here */ dbus_connection_ref (connection); - + service_name = dbus_message_get_destination (message); #ifdef DBUS_ENABLE_VERBOSE_MODE @@ -209,7 +210,7 @@ bus_dispatch (DBusConnection *connection, interface_name = dbus_message_get_interface (message); member_name = dbus_message_get_member (message); error_name = dbus_message_get_error_name (message); - + _dbus_verbose ("DISPATCH: %s %s %s to %s\n", interface_name ? interface_name : "(no interface)", member_name ? member_name : "(no member)", @@ -217,7 +218,15 @@ bus_dispatch (DBusConnection *connection, service_name ? service_name : "peer"); } #endif /* DBUS_ENABLE_VERBOSE_MODE */ - + + /* Create our transaction */ + transaction = bus_transaction_new (context); + if (transaction == NULL) + { + BUS_SET_OOM (&error); + goto out; + } + /* If service_name is NULL, if it's a signal we send it to all * connections with a match rule. If it's not a signal, there * are some special cases here but mostly we just bail out. @@ -240,18 +249,20 @@ bus_dispatch (DBusConnection *connection, result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED; goto out; } + + if(bus_context_is_kdbus(context)) + { + if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) + { + handleNameOwnerChanged(message, transaction, connection); + goto out; + } + } } - - /* Create our transaction */ - transaction = bus_transaction_new (context); - if (transaction == NULL) - { - BUS_SET_OOM (&error); - goto out; - } - + /* Assign a sender to the message */ - if (bus_connection_is_active (connection)) + if(bus_context_is_kdbus(context) == FALSE) //if using kdbus, sender must be set on library side + if (bus_connection_is_active (connection)) { sender = bus_connection_get_name (connection); _dbus_assert (sender != NULL); @@ -269,7 +280,7 @@ bus_dispatch (DBusConnection *connection, */ service_name = dbus_message_get_destination (message); } - + if (service_name && strcmp (service_name, DBUS_SERVICE_DBUS) == 0) /* to bus driver */ { @@ -297,9 +308,9 @@ bus_dispatch (DBusConnection *connection, BusRegistry *registry; _dbus_assert (service_name != NULL); - + registry = bus_connection_get_registry (connection); - + _dbus_string_init_const (&service_string, service_name); service = bus_registry_lookup (registry, &service_string); @@ -319,7 +330,7 @@ bus_dispatch (DBusConnection *connection, _dbus_verbose ("bus_activation_activate_service() failed: %s\n", error.name); goto out; } - + goto out; } else if (service == NULL) @@ -343,7 +354,7 @@ bus_dispatch (DBusConnection *connection, */ if (!bus_dispatch_matches (transaction, connection, addressed_recipient, message, &error)) goto out; - + out: if (dbus_error_is_set (&error)) { @@ -375,7 +386,7 @@ bus_dispatch (DBusConnection *connection, &error, message)) { bus_connection_send_oom_error (connection, message); - + /* cancel transaction due to OOM */ if (transaction != NULL) { @@ -384,8 +395,8 @@ bus_dispatch (DBusConnection *connection, } } } - - + + dbus_error_free (&error); } @@ -409,12 +420,12 @@ bus_dispatch_message_filter (DBusConnection *connection, dbus_bool_t bus_dispatch_add_connection (DBusConnection *connection) -{ +{ if (!dbus_connection_add_filter (connection, bus_dispatch_message_filter, NULL, NULL)) return FALSE; - + return TRUE; } @@ -429,7 +440,7 @@ bus_dispatch_remove_connection (DBusConnection *connection) NULL); } -#ifdef DBUS_BUILD_TESTS +#ifdef DBUS_ENABLE_EMBEDDED_TESTS #include @@ -451,7 +462,7 @@ block_connection_until_message_from_bus (BusContext *context, const char *what_is_expected) { _dbus_verbose ("expecting: %s\n", what_is_expected); - + while (dbus_connection_get_dispatch_status (connection) == DBUS_DISPATCH_COMPLETE && dbus_connection_get_is_connected (connection)) @@ -560,13 +571,13 @@ check_service_owner_changed_foreach (DBusConnection *connection, DBusError error; const char *service_name, *old_owner, *new_owner; - if (d->expected_kind == SERVICE_CREATED + if (d->expected_kind == SERVICE_CREATED && connection == d->skip_connection) return TRUE; dbus_error_init (&error); d->failed = TRUE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -600,7 +611,7 @@ check_service_owner_changed_foreach (DBusConnection *connection, if (dbus_error_has_name (&error, DBUS_ERROR_NO_MEMORY)) { dbus_error_free (&error); - _dbus_wait_for_memory (); + _dbus_wait_for_memory (); goto reget_service_info_data; } else @@ -626,7 +637,7 @@ check_service_owner_changed_foreach (DBusConnection *connection, goto out; } - if (*service_name == ':' && new_owner[0] + if (*service_name == ':' && new_owner[0] && strcmp (service_name, new_owner) != 0) { _dbus_warn ("inconsistent ServiceOwnedChanged message (\"%s\" [ %s -> %s ])\n", @@ -636,10 +647,10 @@ check_service_owner_changed_foreach (DBusConnection *connection, } d->failed = FALSE; - + out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); @@ -656,7 +667,7 @@ kill_client_connection (BusContext *context, CheckServiceOwnerChangedData socd; _dbus_verbose ("killing connection %p\n", connection); - + s = dbus_bus_get_unique_name (connection); _dbus_assert (s != NULL); @@ -664,36 +675,36 @@ kill_client_connection (BusContext *context, _dbus_wait_for_memory (); dbus_connection_ref (connection); - + /* kick in the disconnect handler that unrefs the connection */ dbus_connection_close (connection); bus_test_run_everything (context); - + _dbus_assert (bus_test_client_listed (connection)); - + /* Run disconnect handler in test.c */ if (bus_connection_dispatch_one_message (connection)) _dbus_assert_not_reached ("something received on connection being killed other than the disconnect"); - + _dbus_assert (!dbus_connection_get_is_connected (connection)); dbus_connection_unref (connection); connection = NULL; _dbus_assert (!bus_test_client_listed (connection)); - + socd.expected_kind = SERVICE_DELETED; socd.expected_service_name = base_service; socd.failed = FALSE; socd.skip_connection = NULL; - + bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); dbus_free (base_service); - + if (socd.failed) _dbus_assert_not_reached ("didn't get the expected NameOwnerChanged (deletion) messages"); - + if (!check_no_leftovers (context)) _dbus_assert_not_reached ("stuff left in message queues after disconnecting a client"); } @@ -703,7 +714,7 @@ kill_client_connection_unchecked (DBusConnection *connection) { /* This kills the connection without expecting it to affect * the rest of the bus. - */ + */ _dbus_verbose ("Unchecked kill of connection %p\n", connection); dbus_connection_ref (connection); @@ -749,11 +760,10 @@ check_no_leftovers (BusContext *context) nmd.failed = FALSE; bus_test_clients_foreach (check_no_messages_foreach, &nmd); - + if (nmd.failed) { - _dbus_verbose ("%s: leftover message found\n", - _DBUS_FUNCTION_NAME); + _dbus_verbose ("leftover message found\n"); return FALSE; } else @@ -783,7 +793,7 @@ check_hello_message (BusContext *context, name_message = NULL; _dbus_verbose ("check_hello_message for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -793,7 +803,7 @@ check_hello_message (BusContext *context, return TRUE; dbus_connection_ref (connection); /* because we may get disconnected */ - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -802,44 +812,44 @@ check_hello_message (BusContext *context, } _dbus_assert (dbus_message_has_signature (message, "")); - + dbus_message_unref (message); message = NULL; if (!dbus_connection_get_is_connected (connection)) { _dbus_verbose ("connection was disconnected (presumably auth failed)\n"); - + dbus_connection_unref (connection); - + return TRUE; } - + /* send our message */ bus_test_run_clients_loop (SEND_PENDING (connection)); if (!dbus_connection_get_is_connected (connection)) { _dbus_verbose ("connection was disconnected (presumably auth failed)\n"); - + dbus_connection_unref (connection); - + return TRUE; } - + block_connection_until_message_from_bus (context, connection, "reply to Hello"); if (!dbus_connection_get_is_connected (connection)) { _dbus_verbose ("connection was disconnected (presumably auth failed)\n"); - + dbus_connection_unref (connection); - + return TRUE; } dbus_connection_unref (connection); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -857,7 +867,7 @@ check_hello_message (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_ERROR) { if (dbus_message_is_error (message, @@ -875,7 +885,7 @@ check_hello_message (BusContext *context, else { CheckServiceOwnerChangedData socd; - + if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_METHOD_RETURN) { ; /* good, expected */ @@ -911,14 +921,14 @@ check_hello_message (BusContext *context, while (!dbus_bus_set_unique_name (connection, name)) _dbus_wait_for_memory (); - + socd.expected_kind = SERVICE_CREATED; socd.expected_service_name = name; socd.failed = FALSE; socd.skip_connection = connection; /* we haven't done AddMatch so won't get it ourselves */ bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); - + if (socd.failed) goto out; @@ -939,7 +949,7 @@ check_hello_message (BusContext *context, "NameAcquired"); goto out; } - + retry_get_acquired_name: if (!dbus_message_get_args (message, &error, DBUS_TYPE_STRING, &acquired, @@ -973,20 +983,20 @@ check_hello_message (BusContext *context, if (!check_no_leftovers (context)) goto out; - + retval = TRUE; - + out: - _dbus_verbose ("ending %s retval = %d\n", _DBUS_FUNCTION_NAME, retval); - + _dbus_verbose ("ending - retval = %d\n", retval); + dbus_error_free (&error); - + if (message) dbus_message_unref (message); if (name_message) dbus_message_unref (name_message); - + return retval; } @@ -1007,7 +1017,7 @@ check_double_hello_message (BusContext *context, message = NULL; _dbus_verbose ("check_double_hello_message for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -1015,7 +1025,7 @@ check_double_hello_message (BusContext *context, if (message == NULL) return TRUE; - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -1033,15 +1043,15 @@ check_double_hello_message (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } dbus_connection_unref (connection); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -1059,7 +1069,7 @@ check_double_hello_message (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_ERROR) { warn_unexpected (connection, message, "method return for Hello"); @@ -1068,15 +1078,15 @@ check_double_hello_message (BusContext *context, if (!check_no_leftovers (context)) goto out; - + retval = TRUE; - + out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); - + return retval; } @@ -1099,7 +1109,7 @@ check_get_connection_unix_user (BusContext *context, message = NULL; _dbus_verbose ("check_get_connection_unix_user for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -1110,7 +1120,7 @@ check_get_connection_unix_user (BusContext *context, base_service_name = dbus_bus_get_unique_name (connection); - if (!dbus_message_append_args (message, + if (!dbus_message_append_args (message, DBUS_TYPE_STRING, &base_service_name, DBUS_TYPE_INVALID)) { @@ -1135,10 +1145,10 @@ check_get_connection_unix_user (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } @@ -1210,10 +1220,10 @@ check_get_connection_unix_user (BusContext *context, out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); - + return retval; } @@ -1236,7 +1246,7 @@ check_get_connection_unix_process_id (BusContext *context, message = NULL; _dbus_verbose ("check_get_connection_unix_process_id for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -1247,7 +1257,7 @@ check_get_connection_unix_process_id (BusContext *context, base_service_name = dbus_bus_get_unique_name (connection); - if (!dbus_message_append_args (message, + if (!dbus_message_append_args (message, DBUS_TYPE_STRING, &base_service_name, DBUS_TYPE_INVALID)) { @@ -1272,10 +1282,10 @@ check_get_connection_unix_process_id (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } @@ -1305,11 +1315,11 @@ check_get_connection_unix_process_id (BusContext *context, */ _dbus_verbose ("Windows correctly does not support GetConnectionUnixProcessID\n"); } -#endif +#endif else { warn_unexpected (connection, message, "not this error"); - + goto out; } } @@ -1318,7 +1328,7 @@ check_get_connection_unix_process_id (BusContext *context, #ifdef DBUS_WIN warn_unexpected (connection, message, "GetConnectionUnixProcessID to fail on Windows"); goto out; -#else +#else if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_METHOD_RETURN) { ; /* good, expected */ @@ -1377,10 +1387,10 @@ check_get_connection_unix_process_id (BusContext *context, out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); - + return retval; } @@ -1402,7 +1412,7 @@ check_add_match_all (BusContext *context, message = NULL; _dbus_verbose ("check_add_match_all for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -1418,7 +1428,7 @@ check_add_match_all (BusContext *context, dbus_message_unref (message); return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -1429,32 +1439,32 @@ check_add_match_all (BusContext *context, message = NULL; dbus_connection_ref (connection); /* because we may get disconnected */ - + /* send our message */ bus_test_run_clients_loop (SEND_PENDING (connection)); if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } - + block_connection_until_message_from_bus (context, connection, "reply to AddMatch"); if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } dbus_connection_unref (connection); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -1472,7 +1482,7 @@ check_add_match_all (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_ERROR) { if (dbus_message_is_error (message, @@ -1504,15 +1514,15 @@ check_add_match_all (BusContext *context, if (!check_no_leftovers (context)) goto out; - + retval = TRUE; - + out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); - + return retval; } @@ -1527,7 +1537,7 @@ check_hello_connection (BusContext *context) dbus_error_init (&error); - connection = dbus_connection_open_private (TEST_CONNECTION, &error); + connection = dbus_connection_open_private (TEST_DEBUG_PIPE, &error); if (connection == NULL) { _DBUS_ASSERT_ERROR_IS_SET (&error); @@ -1543,10 +1553,10 @@ check_hello_connection (BusContext *context) } spin_connection_until_authenticated (context, connection); - + if (!check_hello_message (context, connection)) return FALSE; - + if (dbus_bus_get_unique_name (connection) == NULL) { /* We didn't successfully register, so we can't @@ -1558,7 +1568,7 @@ check_hello_connection (BusContext *context) { if (!check_add_match_all (context, connection)) return FALSE; - + kill_client_connection (context, connection); } @@ -1579,17 +1589,17 @@ check_nonexistent_service_no_auto_start (BusContext *context, dbus_bool_t retval; const char *nonexistent = NONEXISTENT_SERVICE_NAME; dbus_uint32_t flags; - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, "StartServiceByName"); - + if (message == NULL) return TRUE; dbus_message_set_auto_start (message, FALSE); - + flags = 0; if (!dbus_message_append_args (message, DBUS_TYPE_STRING, &nonexistent, @@ -1599,7 +1609,7 @@ check_nonexistent_service_no_auto_start (BusContext *context, dbus_message_unref (message); return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -1615,12 +1625,12 @@ check_nonexistent_service_no_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -1640,7 +1650,7 @@ check_nonexistent_service_no_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -1665,11 +1675,11 @@ check_nonexistent_service_no_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -1683,15 +1693,15 @@ check_nonexistent_service_auto_start (BusContext *context, DBusMessage *message; dbus_uint32_t serial; dbus_bool_t retval; - + message = dbus_message_new_method_call (NONEXISTENT_SERVICE_NAME, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -1707,12 +1717,12 @@ check_nonexistent_service_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) @@ -1733,7 +1743,7 @@ check_nonexistent_service_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -1758,11 +1768,11 @@ check_nonexistent_service_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -1776,16 +1786,16 @@ check_base_service_activated (BusContext *context, dbus_bool_t retval; DBusError error; const char *base_service, *base_service_from_bus, *old_owner; - + retval = FALSE; - + dbus_error_init (&error); base_service = NULL; old_owner = NULL; base_service_from_bus = NULL; message = initial_message; - dbus_message_ref (message); + dbus_message_ref (message); if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, @@ -1825,7 +1835,7 @@ check_base_service_activated (BusContext *context, base_service); goto out; } - + if (strcmp (base_service, base_service_from_bus) != 0) { _dbus_warn ("Expected base service activation, got \"%s\" instead with owner \"%s\"\n", @@ -1839,14 +1849,14 @@ check_base_service_activated (BusContext *context, old_owner); goto out; } - + socd.expected_kind = SERVICE_CREATED; socd.expected_service_name = base_service; socd.failed = FALSE; socd.skip_connection = connection; bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); - + if (socd.failed) goto out; } @@ -1861,7 +1871,7 @@ check_base_service_activated (BusContext *context, *base_service_p = base_service; retval = TRUE; - + out: if (message) dbus_message_unref (message); @@ -1881,9 +1891,9 @@ check_service_activated (BusContext *context, dbus_bool_t retval; DBusError error; dbus_uint32_t activation_result; - + retval = FALSE; - + dbus_error_init (&error); message = initial_message; @@ -1950,15 +1960,15 @@ check_service_activated (BusContext *context, socd.expected_service_name = service_name; bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); - + if (socd.failed) goto out; - + dbus_message_unref (message); service_name = NULL; old_owner = NULL; base_service_from_bus = NULL; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -1970,10 +1980,10 @@ check_service_activated (BusContext *context, else { warn_unexpected (connection, message, "NameOwnerChanged for the activated name"); - + goto out; } - + if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_METHOD_RETURN) { warn_unexpected (connection, message, "reply to StartServiceByName"); @@ -2011,7 +2021,7 @@ check_service_activated (BusContext *context, dbus_message_unref (message); message = NULL; - + if (!check_no_leftovers (context)) { _dbus_warn ("Messages were left over after verifying existent activation results\n"); @@ -2019,12 +2029,12 @@ check_service_activated (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); dbus_error_free (&error); - + return retval; } @@ -2038,9 +2048,9 @@ check_service_auto_activated (BusContext *context, DBusMessage *message; dbus_bool_t retval; DBusError error; - + retval = FALSE; - + dbus_error_init (&error); message = initial_message; @@ -2052,7 +2062,7 @@ check_service_auto_activated (BusContext *context, { const char *service_name; CheckServiceOwnerChangedData socd; - + reget_service_name_arg: if (!dbus_message_get_args (message, &error, DBUS_TYPE_STRING, &service_name, @@ -2073,28 +2083,28 @@ check_service_auto_activated (BusContext *context, goto out; } } - + if (strcmp (service_name, activated_name) != 0) { _dbus_warn ("Expected to see service %s created, saw %s instead\n", activated_name, service_name); goto out; } - + socd.expected_kind = SERVICE_CREATED; socd.expected_service_name = service_name; socd.failed = FALSE; - socd.skip_connection = connection; + socd.skip_connection = connection; bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); - + if (socd.failed) goto out; - + /* Note that this differs from regular activation in that we don't get a * reply to ActivateService here. */ - + dbus_message_unref (message); message = NULL; service_name = NULL; @@ -2102,16 +2112,16 @@ check_service_auto_activated (BusContext *context, else { warn_unexpected (connection, message, "NameOwnerChanged for the activated name"); - + goto out; } - + retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -2125,7 +2135,7 @@ check_service_deactivated (BusContext *context, CheckServiceOwnerChangedData socd; retval = FALSE; - + /* Now we are expecting ServiceOwnerChanged (deletion) messages for the base * service and the activated_name. The base service * notification is required to come last. @@ -2135,11 +2145,11 @@ check_service_deactivated (BusContext *context, socd.failed = FALSE; socd.skip_connection = NULL; bus_test_clients_foreach (check_service_owner_changed_foreach, - &socd); + &socd); if (socd.failed) goto out; - + socd.expected_kind = SERVICE_DELETED; socd.expected_service_name = base_service; socd.failed = FALSE; @@ -2151,7 +2161,7 @@ check_service_deactivated (BusContext *context, goto out; retval = TRUE; - + out: return retval; } @@ -2166,27 +2176,27 @@ check_send_exit_to_service (BusContext *context, DBusMessage *message; dbus_uint32_t serial; dbus_bool_t retval; - + _dbus_verbose ("Sending exit message to the test service\n"); retval = FALSE; - + /* Kill off the test service by sending it a quit message */ message = dbus_message_new_method_call (service_name, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Exit"); - + if (message == NULL) { /* Do this again; we still need the service to exit... */ if (!check_send_exit_to_service (context, connection, service_name, base_service)) goto out; - + return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -2195,7 +2205,7 @@ check_send_exit_to_service (BusContext *context, if (!check_send_exit_to_service (context, connection, service_name, base_service)) goto out; - + return TRUE; } @@ -2217,12 +2227,12 @@ check_send_exit_to_service (BusContext *context, dbus_connection_return_message (connection, message); message = NULL; } - + if (!got_error) { /* If no error, wait for the test service to exit */ block_connection_until_message_from_bus (context, connection, "test service to exit"); - + bus_test_run_everything (context); } @@ -2237,7 +2247,7 @@ check_send_exit_to_service (BusContext *context, "error with the correct reply serial"); goto out; } - + if (!dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -2265,7 +2275,7 @@ check_send_exit_to_service (BusContext *context, * stuff. */ message = pop_message_waiting_for_memory (connection); - + if (message == NULL) { warn_unexpected (connection, NULL, @@ -2286,10 +2296,10 @@ check_send_exit_to_service (BusContext *context, "error with the correct reply serial"); goto out; } - + _dbus_verbose ("Got error %s after test service exited\n", dbus_message_get_error_name (message)); - + if (!check_no_leftovers (context)) { _dbus_warn ("Messages were left over after %s\n", @@ -2297,13 +2307,13 @@ check_send_exit_to_service (BusContext *context, goto out; } } - + retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -2318,9 +2328,9 @@ check_got_error (BusContext *context, va_list ap; dbus_bool_t error_found; const char *error_name; - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2359,20 +2369,20 @@ check_got_error (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } - + typedef enum -{ +{ GOT_SERVICE_CREATED, GOT_SERVICE_DELETED, GOT_ERROR, - GOT_SOMETHING_ELSE + GOT_SOMETHING_ELSE } GotServiceInfo; static GotServiceInfo @@ -2446,7 +2456,7 @@ check_existent_service_no_auto_start (BusContext *context, dbus_uint32_t flags; base_service_message = NULL; - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -2456,7 +2466,7 @@ check_existent_service_no_auto_start (BusContext *context, return TRUE; dbus_message_set_auto_start (message, FALSE); - + flags = 0; if (!dbus_message_append_args (message, DBUS_TYPE_STRING, &existent, @@ -2466,7 +2476,7 @@ check_existent_service_no_auto_start (BusContext *context, dbus_message_unref (message); return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -2487,12 +2497,12 @@ check_existent_service_no_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2513,7 +2523,7 @@ check_existent_service_no_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -2538,7 +2548,7 @@ check_existent_service_no_auto_start (BusContext *context, else { GotServiceInfo message_kind; - + if (!check_base_service_activated (context, connection, message, &base_service)) goto out; @@ -2548,7 +2558,7 @@ check_existent_service_no_auto_start (BusContext *context, /* We may need to block here for the test service to exit or finish up */ block_connection_until_message_from_bus (context, connection, "test service to exit or finish up"); - + message = dbus_connection_borrow_message (connection); if (message == NULL) { @@ -2591,7 +2601,7 @@ check_existent_service_no_auto_start (BusContext *context, socd.expected_service_name = base_service; socd.failed = FALSE; socd.skip_connection = NULL; - + bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); @@ -2604,10 +2614,10 @@ check_existent_service_no_auto_start (BusContext *context, if (message_kind != GOT_ERROR) { block_connection_until_message_from_bus (context, connection, "error about service exiting"); - + /* and process everything again */ bus_test_run_everything (context); - + if (!check_got_error (context, connection, DBUS_ERROR_SPAWN_CHILD_EXITED, DBUS_ERROR_NO_MEMORY, @@ -2625,11 +2635,11 @@ check_existent_service_no_auto_start (BusContext *context, "should have been a NameOwnerChanged (creation)\n"); goto out; } - + if (!check_service_activated (context, connection, EXISTENT_SERVICE_NAME, base_service, message)) goto out; - + dbus_message_unref (message); message = NULL; @@ -2648,14 +2658,14 @@ check_existent_service_no_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); if (base_service_message) dbus_message_unref (base_service_message); - + return retval; } @@ -2672,7 +2682,7 @@ check_segfault_service_no_auto_start (BusContext *context, dbus_bool_t retval; const char *segv_service; dbus_uint32_t flags; - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -2682,7 +2692,7 @@ check_segfault_service_no_auto_start (BusContext *context, return TRUE; dbus_message_set_auto_start (message, FALSE); - + segv_service = "org.freedesktop.DBus.TestSuiteSegfaultService"; flags = 0; if (!dbus_message_append_args (message, @@ -2693,7 +2703,7 @@ check_segfault_service_no_auto_start (BusContext *context, dbus_message_unref (message); return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -2709,12 +2719,12 @@ check_segfault_service_no_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2734,7 +2744,7 @@ check_segfault_service_no_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -2767,11 +2777,11 @@ check_segfault_service_no_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -2791,10 +2801,10 @@ check_segfault_service_auto_start (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -2810,12 +2820,12 @@ check_segfault_service_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2835,7 +2845,7 @@ check_segfault_service_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -2860,11 +2870,11 @@ check_segfault_service_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } #endif @@ -2887,7 +2897,7 @@ check_existent_hello_from_self (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "RunHelloFromSelf"); - + if (message == NULL) return TRUE; @@ -2915,7 +2925,7 @@ check_existent_hello_from_self (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from running hello from self"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2932,7 +2942,7 @@ check_existent_hello_from_self (BusContext *context, dbus_message_unref (message); message = NULL; - + return TRUE; } @@ -2949,7 +2959,7 @@ check_existent_ping (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.DBus.Peer", "Ping"); - + if (message == NULL) return TRUE; @@ -2968,7 +2978,7 @@ check_existent_ping (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from running Ping"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2992,7 +3002,7 @@ check_existent_ping (BusContext *context, dbus_message_unref (message); message = NULL; - + return TRUE; } @@ -3006,12 +3016,12 @@ check_existent_get_machine_id (BusContext *context, DBusMessage *message; dbus_uint32_t serial; const char *machine_id; - + message = dbus_message_new_method_call (EXISTENT_SERVICE_NAME, "/org/freedesktop/TestSuite", "org.freedesktop.DBus.Peer", "GetMachineId"); - + if (message == NULL) return TRUE; @@ -3030,7 +3040,7 @@ check_existent_get_machine_id (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from running GetMachineId"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3066,14 +3076,14 @@ check_existent_get_machine_id (BusContext *context, dbus_message_unref (message); return FALSE; } - + /* We can't check that the machine id is correct because during make check it is * just made up for each process separately */ - + dbus_message_unref (message); message = NULL; - + return TRUE; } @@ -3097,7 +3107,7 @@ check_existent_service_auto_start (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; @@ -3129,12 +3139,12 @@ check_existent_service_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3179,7 +3189,7 @@ check_existent_service_auto_start (BusContext *context, dbus_connection_return_message (connection, message); message = NULL; - switch (message_kind) + switch (message_kind) { case GOT_SERVICE_CREATED: message = pop_message_waiting_for_memory (connection); @@ -3189,12 +3199,12 @@ check_existent_service_auto_start (BusContext *context, "should have been a NameOwnerChanged (creation)\n"); goto out; } - + /* Check that ServiceOwnerChanged (creation) was correctly received */ if (!check_service_auto_activated (context, connection, EXISTENT_SERVICE_NAME, base_service, message)) goto out; - + dbus_message_unref (message); message = NULL; @@ -3206,7 +3216,7 @@ check_existent_service_auto_start (BusContext *context, * failed to register under EXISTENT_SERVICE_NAME */ CheckServiceOwnerChangedData socd; - + socd.expected_kind = SERVICE_DELETED; socd.expected_service_name = base_service; socd.failed = FALSE; @@ -3235,7 +3245,7 @@ check_existent_service_auto_start (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from echo message after auto-activation"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3257,7 +3267,7 @@ check_existent_service_auto_start (BusContext *context, if (!check_existent_get_machine_id (context, connection)) goto out; - + if (!check_existent_hello_from_self (context, connection)) goto out; @@ -3265,7 +3275,7 @@ check_existent_service_auto_start (BusContext *context, EXISTENT_SERVICE_NAME, base_service)) goto out; - + retval = TRUE; out: @@ -3295,7 +3305,7 @@ check_launch_service_file_missing (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; @@ -3314,12 +3324,12 @@ check_launch_service_file_missing (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3339,7 +3349,7 @@ check_launch_service_file_missing (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3365,11 +3375,11 @@ check_launch_service_file_missing (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3410,12 +3420,12 @@ check_launch_service_user_missing (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_warn ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_warn ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3435,7 +3445,7 @@ check_launch_service_user_missing (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3461,11 +3471,11 @@ check_launch_service_user_missing (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3506,12 +3516,12 @@ check_launch_service_exec_missing (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_warn ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_warn ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3531,7 +3541,7 @@ check_launch_service_exec_missing (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3565,11 +3575,11 @@ check_launch_service_exec_missing (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3610,12 +3620,12 @@ check_launch_service_service_missing (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_warn ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_warn ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3635,7 +3645,7 @@ check_launch_service_service_missing (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3669,11 +3679,11 @@ check_launch_service_service_missing (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3694,10 +3704,10 @@ check_shell_fail_service_auto_start (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -3713,12 +3723,12 @@ check_shell_fail_service_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3738,7 +3748,7 @@ check_shell_fail_service_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3764,11 +3774,11 @@ check_shell_fail_service_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3794,7 +3804,7 @@ check_shell_service_success_auto_start (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; @@ -3817,12 +3827,12 @@ check_shell_service_success_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3867,7 +3877,7 @@ check_shell_service_success_auto_start (BusContext *context, dbus_connection_return_message (connection, message); message = NULL; - switch (message_kind) + switch (message_kind) { case GOT_SERVICE_CREATED: message = pop_message_waiting_for_memory (connection); @@ -3877,12 +3887,12 @@ check_shell_service_success_auto_start (BusContext *context, "should have been a NameOwnerChanged (creation)\n"); goto out; } - + /* Check that ServiceOwnerChanged (creation) was correctly received */ if (!check_service_auto_activated (context, connection, SHELL_SUCCESS_SERVICE_NAME, base_service, message)) goto out; - + dbus_message_unref (message); message = NULL; @@ -3894,7 +3904,7 @@ check_shell_service_success_auto_start (BusContext *context, * failed to register under SHELL_SUCCESS_SERVICE_NAME */ CheckServiceOwnerChangedData socd; - + socd.expected_kind = SERVICE_DELETED; socd.expected_service_name = base_service; socd.failed = FALSE; @@ -3923,7 +3933,7 @@ check_shell_service_success_auto_start (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from echo message after auto-activation"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3938,7 +3948,7 @@ check_shell_service_success_auto_start (BusContext *context, } if (!dbus_message_get_args (message, NULL, - DBUS_TYPE_STRING, &argv[0], + DBUS_TYPE_STRING, &argv[0], DBUS_TYPE_STRING, &argv[1], DBUS_TYPE_STRING, &argv[2], DBUS_TYPE_STRING, &argv[3], @@ -3951,59 +3961,59 @@ check_shell_service_success_auto_start (BusContext *context, goto out; } - /* don't worry about arg[0] as it may be different + /* don't worry about arg[0] as it may be different depending on the path to the tests */ if (strcmp("-test", argv[1]) != 0) { - _dbus_warn ("Unexpected argv[1] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[1] in shell success service test (expected: %s, got: %s)\n", "-test", argv[1]); goto out; - } + } if (strcmp("that", argv[2]) != 0) { - _dbus_warn ("Unexpected argv[2] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[2] in shell success service test (expected: %s, got: %s)\n", "that", argv[2]); goto out; - } + } if (strcmp("we get", argv[3]) != 0) { - _dbus_warn ("Unexpected argv[3] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[3] in shell success service test (expected: %s, got: %s)\n", "we get", argv[3]); goto out; - } - + } + if (strcmp("back", argv[4]) != 0) { - _dbus_warn ("Unexpected argv[4] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[4] in shell success service test (expected: %s, got: %s)\n", "back", argv[4]); goto out; - } + } if (strcmp("--what", argv[5]) != 0) { - _dbus_warn ("Unexpected argv[5] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[5] in shell success service test (expected: %s, got: %s)\n", "--what", argv[5]); goto out; - } + } if (strcmp("we put in", argv[6]) != 0) { - _dbus_warn ("Unexpected argv[6] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[6] in shell success service test (expected: %s, got: %s)\n", "we put in", argv[6]); goto out; - } + } dbus_message_unref (message); message = NULL; - + if (!check_send_exit_to_service (context, connection, SHELL_SUCCESS_SERVICE_NAME, base_service)) goto out; - + retval = TRUE; out: @@ -4029,7 +4039,7 @@ check_oom_check1_func (void *data) if (! (* d->func) (d->context)) return FALSE; - + if (!check_no_leftovers (d->context)) { _dbus_warn ("Messages were left over, should be covered by test suite\n"); @@ -4097,7 +4107,7 @@ check_get_services (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); dbus_connection_unref (connection); @@ -4169,15 +4179,15 @@ check_get_services (BusContext *context, *len = l; } } - + if (!check_no_leftovers (context)) goto out; - + retval = TRUE; - + out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); @@ -4259,7 +4269,7 @@ check_list_services (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } @@ -4350,7 +4360,7 @@ check_list_services (BusContext *context, "should have been a NameOwnerChanged (creation)\n"); goto out; } - + if (!check_service_activated (context, connection, EXISTENT_SERVICE_NAME, base_service, message)) goto out; @@ -4367,7 +4377,7 @@ check_list_services (BusContext *context, break; } } - + if (!check_get_services (context, connection, "ListNames", &services, &len)) { return TRUE; @@ -4411,7 +4421,7 @@ check_oom_check2_func (void *data) if (! (* d->func) (d->context, d->connection)) return FALSE; - + if (!check_no_leftovers (d->context)) { _dbus_warn ("Messages were left over, should be covered by test suite\n"); @@ -4432,7 +4442,7 @@ check2_try_iterations (BusContext *context, d.func = func; d.context = context; d.connection = connection; - + if (!_dbus_test_oom_handling (description, check_oom_check2_func, &d)) { @@ -4455,20 +4465,20 @@ setenv_TEST_LAUNCH_HELPER_CONFIG(const DBusString *test_data_dir, { _dbus_string_free (&full); return FALSE; - } + } _dbus_string_init_const (&file, filename); - + if (!_dbus_concat_dir_and_file (&full, &file)) { _dbus_string_free (&full); return FALSE; } - _dbus_verbose ("Setting TEST_LAUNCH_HELPER_CONFIG to '%s'\n", + _dbus_verbose ("Setting TEST_LAUNCH_HELPER_CONFIG to '%s'\n", _dbus_string_get_const_data (&full)); - - _dbus_setenv ("TEST_LAUNCH_HELPER_CONFIG", _dbus_string_get_const_data (&full)); + + dbus_setenv ("TEST_LAUNCH_HELPER_CONFIG", _dbus_string_get_const_data (&full)); _dbus_string_free (&full); @@ -4491,12 +4501,12 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, _dbus_assert_not_reached ("no memory setting TEST_LAUNCH_HELPER_CONFIG"); dbus_error_init (&error); - + context = bus_context_new_test (test_data_dir, filename); if (context == NULL) return FALSE; - - foo = dbus_connection_open_private (TEST_CONNECTION, &error); + + foo = dbus_connection_open_private (TEST_DEBUG_PIPE, &error); if (foo == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4504,7 +4514,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, _dbus_assert_not_reached ("could not set up connection"); spin_connection_until_authenticated (context, foo); - + if (!check_hello_message (context, foo)) _dbus_assert_not_reached ("hello message failed"); @@ -4513,8 +4523,8 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, if (!check_add_match_all (context, foo)) _dbus_assert_not_reached ("AddMatch message failed"); - - bar = dbus_connection_open_private (TEST_CONNECTION, &error); + + bar = dbus_connection_open_private (TEST_DEBUG_PIPE, &error); if (bar == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4522,14 +4532,14 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, _dbus_assert_not_reached ("could not set up connection"); spin_connection_until_authenticated (context, bar); - + if (!check_hello_message (context, bar)) _dbus_assert_not_reached ("hello message failed"); if (!check_add_match_all (context, bar)) _dbus_assert_not_reached ("AddMatch message failed"); - - baz = dbus_connection_open_private (TEST_CONNECTION, &error); + + baz = dbus_connection_open_private (TEST_DEBUG_PIPE, &error); if (baz == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4537,7 +4547,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, _dbus_assert_not_reached ("could not set up connection"); spin_connection_until_authenticated (context, baz); - + if (!check_hello_message (context, baz)) _dbus_assert_not_reached ("hello message failed"); @@ -4557,16 +4567,16 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, if (!check_list_services (context, baz)) _dbus_assert_not_reached ("ListActivatableNames message failed"); - + if (!check_no_leftovers (context)) { _dbus_warn ("Messages were left over after setting up initial connections\n"); _dbus_assert_not_reached ("initial connection setup failed"); } - + check1_try_iterations (context, "create_and_hello", check_hello_connection); - + check2_try_iterations (context, foo, "nonexistent_service_no_auto_start", check_nonexistent_service_no_auto_start); @@ -4576,15 +4586,15 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, check2_try_iterations (context, foo, "segfault_service_no_auto_start", check_segfault_service_no_auto_start); #endif - + check2_try_iterations (context, foo, "existent_service_no_auto_start", check_existent_service_no_auto_start); - + check2_try_iterations (context, foo, "nonexistent_service_auto_start", check_nonexistent_service_auto_start); - -#ifdef DBUS_WIN_FIXME + +#ifdef DBUS_WIN_FIXME _dbus_warn("TODO: dispatch.c segfault_service_auto_start test\n"); #else /* only do the segfault test if we are not using the launcher */ @@ -4609,7 +4619,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, check2_try_iterations (context, foo, "existent_service_auto_auto_start", check_existent_service_auto_start); #endif - + if (!check_existent_service_auto_start (context, foo)) _dbus_assert_not_reached ("existent service auto start failed"); @@ -4623,7 +4633,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, kill_client_connection_unchecked (baz); bus_context_unref (context); - + return TRUE; } @@ -4638,14 +4648,14 @@ bus_dispatch_test_conf_fail (const DBusString *test_data_dir, /* save the config name for the activation helper */ if (!setenv_TEST_LAUNCH_HELPER_CONFIG (test_data_dir, filename)) _dbus_assert_not_reached ("no memory setting TEST_LAUNCH_HELPER_CONFIG"); - + dbus_error_init (&error); - + context = bus_context_new_test (test_data_dir, filename); if (context == NULL) return FALSE; - - foo = dbus_connection_open_private (TEST_CONNECTION, &error); + + foo = dbus_connection_open_private (TEST_DEBUG_PIPE, &error); if (foo == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4680,7 +4690,7 @@ bus_dispatch_test_conf_fail (const DBusString *test_data_dir, kill_client_connection_unchecked (foo); bus_context_unref (context); - + return TRUE; } @@ -4693,6 +4703,9 @@ bus_dispatch_test (const DBusString *test_data_dir) "valid-config-files/debug-allow-all.conf", FALSE)) return FALSE; +#ifdef DBUS_WIN + _dbus_warn("Info: Launch helper activation tests skipped because launch-helper is not supported yet\n"); +#else /* run launch-helper activation tests */ _dbus_verbose ("Launch helper activation tests\n"); if (!bus_dispatch_test_conf (test_data_dir, @@ -4703,6 +4716,7 @@ bus_dispatch_test (const DBusString *test_data_dir) if (!bus_dispatch_test_conf_fail (test_data_dir, "valid-config-files-system/debug-allow-all-fail.conf")) return FALSE; +#endif return TRUE; } @@ -4715,16 +4729,16 @@ bus_dispatch_sha1_test (const DBusString *test_data_dir) DBusError error; dbus_error_init (&error); - + /* Test SHA1 authentication */ _dbus_verbose ("Testing SHA1 context\n"); - + context = bus_context_new_test (test_data_dir, "valid-config-files/debug-allow-all-sha1.conf"); if (context == NULL) return FALSE; - foo = dbus_connection_open_private (TEST_CONNECTION, &error); + foo = dbus_connection_open_private (TEST_DEBUG_PIPE, &error); if (foo == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4732,19 +4746,19 @@ bus_dispatch_sha1_test (const DBusString *test_data_dir) _dbus_assert_not_reached ("could not set up connection"); spin_connection_until_authenticated (context, foo); - + if (!check_hello_message (context, foo)) _dbus_assert_not_reached ("hello message failed"); if (!check_add_match_all (context, foo)) _dbus_assert_not_reached ("addmatch message failed"); - + if (!check_no_leftovers (context)) { _dbus_warn ("Messages were left over after setting up initial SHA-1 connection\n"); _dbus_assert_not_reached ("initial connection setup failed"); } - + check1_try_iterations (context, "create_and_hello_sha1", check_hello_connection); @@ -4764,7 +4778,6 @@ bus_unix_fds_passing_test(const DBusString *test_data_dir) DBusConnection *foo, *bar; DBusError error; DBusMessage *m; - dbus_bool_t b; int one[2], two[2], x, y, z; char r; @@ -4774,7 +4787,7 @@ bus_unix_fds_passing_test(const DBusString *test_data_dir) if (context == NULL) _dbus_assert_not_reached ("could not alloc context"); - foo = dbus_connection_open_private (TEST_CONNECTION, &error); + foo = dbus_connection_open_private (TEST_DEBUG_PIPE, &error); if (foo == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4789,7 +4802,7 @@ bus_unix_fds_passing_test(const DBusString *test_data_dir) if (!check_add_match_all (context, foo)) _dbus_assert_not_reached ("AddMatch message failed"); - bar = dbus_connection_open_private (TEST_CONNECTION, &error); + bar = dbus_connection_open_private (TEST_DEBUG_PIPE, &error); if (bar == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4906,4 +4919,4 @@ bus_unix_fds_passing_test(const DBusString *test_data_dir) } #endif -#endif /* DBUS_BUILD_TESTS */ +#endif /* DBUS_ENABLE_EMBEDDED_TESTS */