[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] Fix virsystemdtest for previous commit



On 09/11/2013 10:31 AM, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange 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 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);
>      }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]