diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | bus/dispatch.c | 36 | ||||
-rw-r--r-- | bus/test.c | 13 |
3 files changed, 42 insertions, 18 deletions
@@ -1,3 +1,12 @@ +2003-04-11 Havoc Pennington <hp@pobox.com> + + * bus/dispatch.c (check_existent_service_activation): accept a no + memory error in a place we didn't before + + * bus/test.c (bus_test_run_everything): remove hacky "do it twice + in case the first one failed," since the test suite is less + broken now. + 2003-04-10 Havoc Pennington <hp@pobox.com> * bus/dispatch.c (check_segfault_service_activation): add test @@ -9,7 +18,7 @@ 2003-04-10 Havoc Pennington <hp@pobox.com> * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all - the possible parent failures before we fork, so that we don't q + the possible parent failures before we fork, so that we don't fail to create a babysitter after creating the child. * bus/activation.c (bus_activation_activate_service): kill child diff --git a/bus/dispatch.c b/bus/dispatch.c index 29364665..41317549 100644 --- a/bus/dispatch.c +++ b/bus/dispatch.c @@ -1445,11 +1445,15 @@ check_send_exit_to_service (BusContext *context, static dbus_bool_t check_got_error (BusContext *context, DBusConnection *connection, - const char *error_name) + const char *first_error_name, + ...) { DBusMessage *message; dbus_bool_t retval; - + va_list ap; + dbus_bool_t error_found; + const char *error_name; + retval = FALSE; message = pop_message_waiting_for_memory (connection); @@ -1466,10 +1470,25 @@ check_got_error (BusContext *context, goto out; } - if (!dbus_message_name_is (message, error_name)) + error_found = FALSE; + + va_start (ap, first_error_name); + error_name = first_error_name; + while (error_name != NULL) + { + if (dbus_message_name_is (message, error_name)) + { + error_found = TRUE; + break; + } + error_name = va_arg (ap, char*); + } + va_end (ap); + + if (!error_found) { - _dbus_warn ("Expected error %s, got %s instead\n", - error_name, + _dbus_warn ("Expected error %s or other, got %s instead\n", + first_error_name, dbus_message_get_name (message)); goto out; } @@ -1613,7 +1632,9 @@ check_existent_service_activation (BusContext *context, if (got_error) { if (!check_got_error (context, connection, - DBUS_ERROR_SPAWN_CHILD_EXITED)) + DBUS_ERROR_SPAWN_CHILD_EXITED, + DBUS_ERROR_NO_MEMORY, + NULL)) goto out; /* A service deleted should be coming along now after this error. @@ -1648,7 +1669,8 @@ check_existent_service_activation (BusContext *context, bus_test_run_everything (context); if (!check_got_error (context, connection, - DBUS_ERROR_SPAWN_CHILD_EXITED)) + DBUS_ERROR_SPAWN_CHILD_EXITED, + NULL)) goto out; } } @@ -335,16 +335,9 @@ bus_test_run_bus_loop (BusContext *context, void bus_test_run_everything (BusContext *context) { - int i; - - i = 0; - while (i < 2) - { - while (_dbus_loop_iterate (bus_context_get_loop (context), FALSE) || - (client_loop == NULL || _dbus_loop_iterate (client_loop, FALSE))) - ; - ++i; - } + while (_dbus_loop_iterate (bus_context_get_loop (context), FALSE) || + (client_loop == NULL || _dbus_loop_iterate (client_loop, FALSE))) + ; } BusContext* |