On Wed, 2016-04-13 at 16:37 +0200, Martin Kletzander wrote:
> We were lacking tests that are checking for the completeness of our
> nodedev XMLs and also whether we output properly formatted ones. This
> patch adds parsing for the capability elements inside the <capability
> type='pci'> element. Also bunch of tests are added to show everything
> works properly.
>
> Signed-off-by: Martin Kletzander <[email protected]>
> ---
> src/conf/node_device_conf.c | 98
> +++++++++++++++++++++++++++++++++++++++++++++
> tests/nodedevxml2xmltest.c | 7 ++++
> 2 files changed, 105 insertions(+)
>
> diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
> index b6e2f82727d0..5a41f7e0d2cc 100644
> --- a/src/conf/node_device_conf.c
> +++ b/src/conf/node_device_conf.c
> @@ -1269,15 +1269,103 @@ virPCIEDeviceInfoParseXML(xmlXPathContextPtr ctxt,
>
>
> static int
> +virNodeDevPCICapabilityParseXML(xmlXPathContextPtr ctxt,
> + xmlNodePtr node,
> + virNodeDevCapDataPtr data)
> +{
> + char *maxFuncsStr = virXMLPropString(node, "maxCount");
maxCountStr?
> + char *type = virXMLPropString(node, "type");
typeStr?
> @@ -1321,6 +1409,15 @@ virNodeDevCapPCIDevParseXML(xmlXPathContextPtr ctxt,
> data->pci_dev.vendor_name = virXPathString("string(./vendor[1])", ctxt);
> data->pci_dev.product_name = virXPathString("string(./product[1])",
> ctxt);
>
> + if ((n = virXPathNodeSet("./capability", ctxt, &nodes)) < 0)
> + goto out;
> +
> + for (i = 0; i < n; i++) {
> + if (virNodeDevPCICapabilityParseXML(ctxt, nodes[i], data) < 0)
> + goto out;
> + }
> + VIR_FREE(nodes);
This shouldn't be necessary as you free the memory in the
out path anyway.
Cheers.
--
Andrea Bolognani
Software Engineer - Virtualization Team
--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list