On 09/11/2013 10:31 AM, Daniel P. Berrange wrote: > From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> > > The change to query org.freedesktop.DBus.ListActivatableNames > to detect systemd broke the test suite, since we did not have > stubs to respond to this dbus call. > > Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> > --- > tests/virsystemdmock.c | 54 +++++++++++++++++++++++++++++++++----------------- > tests/virsystemdtest.c | 4 ++++ > 2 files changed, 40 insertions(+), 18 deletions(-) > > Pushed under build break rule. > > diff --git a/tests/virsystemdmock.c b/tests/virsystemdmock.c > index 5dbd33f..59b312d 100644 > --- a/tests/virsystemdmock.c > +++ b/tests/virsystemdmock.c > @@ -65,29 +65,47 @@ dbus_bool_t dbus_message_set_reply_serial(DBusMessage *message ATTRIBUTE_UNUSED, > } > > DBusMessage *dbus_connection_send_with_reply_and_block(DBusConnection *connection ATTRIBUTE_UNUSED, > - DBusMessage *message ATTRIBUTE_UNUSED, > + DBusMessage *message, > int timeout_milliseconds ATTRIBUTE_UNUSED, > - DBusError *error) > + DBusError *error ATTRIBUTE_UNUSED) > { > DBusMessage *reply = NULL; > + const char *service = dbus_message_get_destination(message); > > - if (getenv("FAIL_BAD_SERVICE")) { > - DBusMessageIter iter; > - const char *error_message = "Something went wrong creating the machine"; > - if (!(reply = dbus_message_new(DBUS_MESSAGE_TYPE_ERROR))) > - return NULL; > - dbus_message_set_error_name(reply, "org.freedesktop.systemd.badthing"); > - dbus_message_iter_init_append(reply, &iter); > - if (!dbus_message_iter_append_basic(&iter, > - DBUS_TYPE_STRING, > - &error_message)) { > - dbus_message_unref(reply); > - return NULL; > + if (STREQ(service, "org.freedesktop.machine1")) { > + if (getenv("FAIL_BAD_SERVICE")) { > + DBusMessageIter iter; > + const char *error_message = "Something went wrong creating the machine"; > + if (!(reply = dbus_message_new(DBUS_MESSAGE_TYPE_ERROR))) > + return NULL; > + dbus_message_set_error_name(reply, "org.freedesktop.systemd.badthing"); > + dbus_message_iter_init_append(reply, &iter); > + if (!dbus_message_iter_append_basic(&iter, > + DBUS_TYPE_STRING, > + &error_message)) { > + dbus_message_unref(reply); > + return NULL; > + } > + } else { > + reply = dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_RETURN); > } > - } else if (getenv("FAIL_NO_SERVICE")) { > - dbus_set_error(error, > - "org.freedesktop.DBus.Error.ServiceUnknown", > - "%s", "The name org.freedesktop.machine1 was not provided by any .service files"); > + } else if (STREQ(service, "org.freedesktop.DBus")) { > + const char *svc1 = "org.foo.bar.wizz"; > + const char *svc2 = "org.freedesktop.machine1"; > + DBusMessageIter iter, sub; > + reply = dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_RETURN); > + dbus_message_iter_init_append(reply, &iter); > + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, > + "s", &sub); > + > + dbus_message_iter_append_basic(&sub, > + DBUS_TYPE_STRING, > + &svc1); Coverity complains here that dbus_message_iter_append_basic() needs to have it's return checked like other places (including in SET_NEXT_VAL) > + if (!getenv("FAIL_NO_SERVICE")) > + dbus_message_iter_append_basic(&sub, > + DBUS_TYPE_STRING, > + &svc2); Coverity complains here that dbus_message_iter_append_basic() needs to have it's return checked like other places (including in SET_NEXT_VAL) > + dbus_message_iter_close_container(&iter, &sub); > } else { > reply = dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_RETURN); > } -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list