[libvirt] [PATCH] Fix virsystemdtest for previous commit
John Ferlan
jferlan at redhat.com
Thu Sep 12 10:38:58 UTC 2013
On 09/11/2013 10:31 AM, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> 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 at redhat.com>
> ---
> 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);
> }
More information about the libvir-list
mailing list