mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
tests: qemucapsprobemock: Prepare 'qemucapsprobe' for the new format
Change the output of qemucapsprobe to record the commands used for querying. This allows to easily identify which reply belongs to which command and also will allow to test whether we use stable queries. This change includes changing dropping of the QMP greeting from the file and reformatting of the query and output to stdout. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
9369348eb8
commit
e00ecd1bed
@ -37,6 +37,7 @@
|
|||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
static bool first = true;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
printLineSkipEmpty(const char *line,
|
printLineSkipEmpty(const char *line,
|
||||||
@ -60,9 +61,22 @@ int
|
|||||||
qemuMonitorSend(qemuMonitorPtr mon,
|
qemuMonitorSend(qemuMonitorPtr mon,
|
||||||
qemuMonitorMessagePtr msg)
|
qemuMonitorMessagePtr msg)
|
||||||
{
|
{
|
||||||
|
char *reformatted;
|
||||||
|
|
||||||
REAL_SYM(realQemuMonitorSend);
|
REAL_SYM(realQemuMonitorSend);
|
||||||
|
|
||||||
fprintf(stderr, "%s", msg->txBuffer);
|
if (!(reformatted = virJSONStringReformat(msg->txBuffer, true))) {
|
||||||
|
fprintf(stderr, "Failed to reformat command string '%s'\n", msg->txBuffer);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (first)
|
||||||
|
first = false;
|
||||||
|
else
|
||||||
|
printLineSkipEmpty("\n", stdout);
|
||||||
|
|
||||||
|
printLineSkipEmpty(reformatted, stdout);
|
||||||
|
VIR_FREE(reformatted);
|
||||||
|
|
||||||
return realQemuMonitorSend(mon, msg);
|
return realQemuMonitorSend(mon, msg);
|
||||||
}
|
}
|
||||||
@ -77,7 +91,6 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon,
|
|||||||
const char *line,
|
const char *line,
|
||||||
qemuMonitorMessagePtr msg)
|
qemuMonitorMessagePtr msg)
|
||||||
{
|
{
|
||||||
static bool first = true;
|
|
||||||
virJSONValuePtr value = NULL;
|
virJSONValuePtr value = NULL;
|
||||||
char *json = NULL;
|
char *json = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
@ -93,14 +106,14 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon,
|
|||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (first) {
|
/* Ignore QMP greeting */
|
||||||
first = false;
|
|
||||||
} else {
|
|
||||||
/* Ignore QMP greeting if it's not the first one */
|
|
||||||
if (virJSONValueObjectHasKey(value, "QMP"))
|
if (virJSONValueObjectHasKey(value, "QMP"))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
putchar('\n');
|
|
||||||
}
|
if (first)
|
||||||
|
first = false;
|
||||||
|
else
|
||||||
|
printLineSkipEmpty("\n", stdout);
|
||||||
|
|
||||||
printLineSkipEmpty(json, stdout);
|
printLineSkipEmpty(json, stdout);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user