[libvirt] [PATCH 09/27] tests: Add test infrastructure for qemuMonitorGetCPUInfo

Pavel Hrdina phrdina at redhat.com
Thu Aug 11 14:13:44 UTC 2016


On Fri, Aug 05, 2016 at 03:56:05PM +0200, Peter Krempa wrote:
> As the combination algorithm is rather complex and ugly it's necessary
> to make sure it works properly. Add test suite infrastructure for
> testing it along with a basic test based on x86_64 platform.
> ---
>  ...nitorjson-cpuinfo-x86-basic-pluggable-cpus.json |  50 ++++++++
>  ...orjson-cpuinfo-x86-basic-pluggable-hotplug.json |  82 +++++++++++++
>  ...emumonitorjson-cpuinfo-x86-basic-pluggable.data |  39 ++++++
>  tests/qemumonitorjsontest.c                        | 133 +++++++++++++++++++++
>  4 files changed, 304 insertions(+)
>  create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable-cpus.json
>  create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable-hotplug.json
>  create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-basic-pluggable.data

[...]

> +static int
> +testQemuMonitorCPUInfo(const void *opaque)
> +{
> +    const struct testCPUInfoData *data = opaque;
> +    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, data->xmlopt);
> +    char *queryCpusFile = NULL;
> +    char *queryHotpluggableFile = NULL;
> +    char *dataFile = NULL;
> +    char *queryCpusStr = NULL;
> +    char *queryHotpluggableStr = NULL;
> +    char *actual = NULL;
> +    qemuMonitorCPUInfoPtr vcpus = NULL;
> +    int rc;
> +    int ret = -1;
> +
> +    if (!test)
> +        return -1;
> +
> +    if (virAsprintf(&queryCpusFile,
> +                    "%s/qemumonitorjsondata/qemumonitorjson-cpuinfo-%s-cpus.json",
> +                    abs_srcdir, data->name) < 0 ||
> +        virAsprintf(&queryHotpluggableFile,
> +                    "%s/qemumonitorjsondata/qemumonitorjson-cpuinfo-%s-hotplug.json",
> +                    abs_srcdir, data->name) < 0 ||
> +        virAsprintf(&dataFile,
> +                    "%s/qemumonitorjsondata/qemumonitorjson-cpuinfo-%s.data",
> +                    abs_srcdir, data->name) < 0)
> +        goto cleanup;
> +
> +    if (virTestLoadFile(queryCpusFile, &queryCpusStr) < 0)
> +        goto cleanup;
> +
> +    if (virTestLoadFile(queryHotpluggableFile, &queryHotpluggableStr) < 0)
> +        goto cleanup;
> +
> +    if (qemuMonitorTestAddItem(test, "query-hotpluggable-cpus", queryHotpluggableStr) < 0)

This line is too long, please wrap it.

> +        goto cleanup;
> +
> +    if (qemuMonitorTestAddItem(test, "query-cpus", queryCpusStr) < 0)
> +        goto cleanup;
> +
> +    rc = qemuMonitorGetCPUInfo(qemuMonitorTestGetMonitor(test),
> +                               &vcpus, data->maxvcpus, true);
> +
> +    if (rc < 0)
> +        goto cleanup;
> +
> +    actual = testQemuMonitorCPUInfoFormat(vcpus, data->maxvcpus);
> +
> +    if (virTestCompareToFile(actual, dataFile) < 0)
> +        goto cleanup;
> +
> +    ret = 0;
> + cleanup:
> +    VIR_FREE(queryCpusFile);
> +    VIR_FREE(queryHotpluggableFile);
> +    VIR_FREE(dataFile);
> +    VIR_FREE(queryCpusStr);
> +    VIR_FREE(queryHotpluggableStr);
> +    VIR_FREE(actual);
> +    qemuMonitorCPUInfoFree(vcpus, data->maxvcpus);
> +    qemuMonitorTestFree(test);
> +    return ret;
> +}

ACK




More information about the libvir-list mailing list