On 08/01/13 13:39, John Ferlan wrote:
On 07/30/2013 09:05 AM, Peter Krempa wrote:
> This patch exports a few utility functions and adds testing of shutdown
> commands of the guest agent.
> ---
<...snip...>
> +
> +static int
> +qemuAgentShutdownTestMonitorHandler(qemuMonitorTestPtr test,
> + qemuMonitorTestItemPtr item,
> + const char *cmdstr)
> +{
> + struct qemuAgentShutdownTestData *data;
> + virJSONValuePtr val = NULL;
> + virJSONValuePtr args;
> + const char *cmdname;
> + const char *mode;
> + int ret = -1;
> +
> + data = qemuMonitorTestItemGetPrivateData(item);
> +
> + if (!(val = virJSONValueFromString(cmdstr)))
> + return -1;
> +
> + if (!(cmdname = virJSONValueObjectGetString(val, "execute"))) {
> + ret = qemuMonitorReportError(test, "Missing command name in %s",
cmdstr);
> + goto cleanup;
> + }
> +
> + if (STRNEQ(cmdname, "guest-shutdown")) {
> + ret = qemuMonitorTestAddUnexpectedErrorResponse(test);
> + goto cleanup;
> + }
> +
> + if (!(args = virJSONValueObjectGet(val, "arguments"))) {
> + ret = qemuMonitorReportError(test,
> + "Missing arguments section");
> + goto cleanup;
> + }
> +
Coverity complains that 'mode' isn't used - while a silly complaint is
there anything that could be done to just compare "mode" against an
"expected" (or perhaps unexpected value)?
247 }
248
(1) Event returned_pointer: Pointer "mode" returned by
"virJSONValueObjectGetString(args, "mode")" is never used.
249 if (!(mode = virJSONValueObjectGetString(args, "mode"))) {
250 ret = qemuMonitorReportError(test, "Missing shutdown mode");
Oh right, I was intending to do that check but forgot to write the
condition. I'll post a fix in a while.
> + if (!(mode = virJSONValueObjectGetString(args, "mode"))) {
> + ret = qemuMonitorReportError(test, "Missing shutdown mode");
> + goto cleanup;
> + }
> +
> + /* now don't reply but return a qemu agent event */
> + qemuAgentNotifyEvent(qemuMonitorTestGetAgent(test),
> + data->event);
> +
> + ret = 0;
> +
> +cleanup:
> + virJSONValueFree(val);
> + return ret;
> +
> +}
>
Peter