+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
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
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);
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;
}
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.
bus_test_run_everything (context);
if (!check_got_error (context, connection,
- DBUS_ERROR_SPAWN_CHILD_EXITED))
+ DBUS_ERROR_SPAWN_CHILD_EXITED,
+ NULL))
goto out;
}
}
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*