[libvirt] [PATCH] tests: Introduce qemucapabilitiestest
Eric Blake
eblake at redhat.com
Mon Sep 30 19:23:03 UTC 2013
On 09/27/2013 04:25 AM, Michal Privoznik wrote:
> This test is there to ensure that our capabilities detection code isn't
> broken somehow.
>
> How to gather test data:
>
> Firstly, the data is split into two separate files. The former (with
> suffix .replies) contains all the qemu replies. This is very fragile as
> introducing a new device can mean yet another monitor command and hence
> edit of this file in the future. But there's no better way of doing
> this. To get this data simply turn on debug logs and copy all the
> QEMU_MONITOR_IO_PROCESS lines. But be careful to not copy incomplete
> ones (yeah, we report some incomplete lines too). Long story short, at
> the libvirtd startup, a dummy qemu is spawn to get all the capabilities.
>
> The latter (with suffix .caps) contains capabilities XML. Just start a
> domain and copy the corresponding part from its state XML file.
> Including <qemuCaps> tag.
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> .gitignore | 1 +
> tests/Makefile.am | 12 +-
> tests/qemucapabilitiesdata/caps_1.5.3-1.caps | 133 ++
> tests/qemucapabilitiesdata/caps_1.5.3-1.replies | 2519 +++++++++++++++++++++++
> tests/qemucapabilitiestest.c | 241 +++
> 5 files changed, 2904 insertions(+), 2 deletions(-)
> create mode 100644 tests/qemucapabilitiesdata/caps_1.5.3-1.caps
> create mode 100644 tests/qemucapabilitiesdata/caps_1.5.3-1.replies
> create mode 100644 tests/qemucapabilitiestest.c
>
> +static qemuMonitorTestPtr
> +testQemuFeedMonitor(char *replies,
> + virDomainXMLOptionPtr xmlopt)
> +{
> + qemuMonitorTestPtr test = NULL;
> + char *tmp = replies;
> + char *singleReply = tmp;
> +
> + /* Our JSON parser expects replies to be separated by a newline character.
> + * Hence we must preprocess the file a bit. */
> + while ((tmp = strchr(tmp, '\n'))) {
> + /* It is safe to touch (tmp + 1) since all strings ends with '\0'. */
> + bool eof = *(tmp + 1) == '\0';
More compact as:
bool eof = !tmp[1];
but that's not worth a respin :)
ACK - as this just touches the testsuite, I'm fine with including it in
1.1.3 rather than waiting.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130930/488c53c4/attachment-0001.sig>
More information about the libvir-list
mailing list