[libvirt] [PATCH 2/6] tests: qemu: Add support for testing aguments on monitor verbatim
Peter Krempa
pkrempa at redhat.com
Wed Oct 5 15:17:33 UTC 2016
On Wed, Oct 05, 2016 at 09:37:50 -0400, John Ferlan wrote:
> On 09/27/2016 12:39 PM, Peter Krempa wrote:
> > Add code that takes a string and matches it against the data passed as
> > arguments from qemu. This is a simpler version of
> > qemuMonitorTestAddItemParams.
> > ---
> > tests/qemumonitortestutils.c | 112 +++++++++++++++++++++++++++++++++++++++++++
> > tests/qemumonitortestutils.h | 6 +++
> > 2 files changed, 118 insertions(+)
[...]
> > +/**
> > + * qemuMonitorTestAddItemExpect:
> > + *
> > + * @test: test monitor object
> > + * @cmdname: command name
> > + * @cmdargs: expected arguments of the command
> > + * @apostrophe: convert apostrophes (') in @cmdargs to quotes (")
> > + * @response: simulated response of the command
> > + *
> > + * Simulates a qemu monitor command. Checks that the 'arguments' of the qmp
> > + * command are expected. If @apostrophe is true apostrophes are converted to
> > + * quotes for simplification of writing the strings into code.
> > + */
> > +int
> > +qemuMonitorTestAddItemExpect(qemuMonitorTestPtr test,
> > + const char *cmdname,
> > + const char *cmdargs,
> > + bool apostrophe,
> > + const char *response)
> > +{
> > + struct qemuMonitorTestHandlerData *data;
> > +
> > + if (VIR_ALLOC(data) < 0)
> > + goto error;
> > +
> > + if (VIR_STRDUP(data->command_name, cmdname) < 0 ||
> > + VIR_STRDUP(data->response, response) < 0 ||
> > + VIR_STRDUP(data->expectArgs, cmdargs) < 0)
> > + goto error;
> > +
> > + if (apostrophe) {
> > + char *tmp = data->expectArgs;
> > +
> > + while (*tmp != '\0') {
> > + if (*tmp == '\'')
> > + *tmp = '"';
> > +
> > + tmp++;
> > + }
>
> Would there ever be a time when apostrophe would be false?
It certainly can be. If you construct a proper JSON string, then
basically everything is enclosed in quotes. But those are very hard to
do in C code, thus you can cut the corner by using apostrophes. This
won't work though if you e.g. want to send a string containing an
apostrophe, thus you will need to do it properly and set @apostrophe to
false.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20161005/c593eb72/attachment-0001.sig>
More information about the libvir-list
mailing list