[libvirt] [PATCH 05/19] tests: qemublock: Add test for bitmap detection

Eric Blake eblake at redhat.com
Thu Dec 12 19:01:17 UTC 2019


On 12/12/19 11:18 AM, Peter Krempa wrote:
> Test the extraction of data about changed block tracking bitmaps. The
> first test case adds a simple scenario of multiple bitmaps in one layer.
> 
> The test data will be also later reused for testing the code that
> determines which bitmaps to merge for an incremental backup.
> 
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
>   tests/qemublocktest.c                     |  75 ++++++++++++++

> +static void
> +testQemuDetectBitmapsWorker(virHashTablePtr nodedata,
> +                            const char *nodename,
> +                            virBufferPtr buf)
> +{
> +    qemuBlockNamedNodeDataPtr data;
> +    size_t i;
> +
> +    if (!(data = virHashLookup(nodedata, nodename)))
> +        return;
> +
> +    virBufferAsprintf(buf, "%s:\n", nodename);
> +    virBufferAdjustIndent(buf, 1);
> +
> +    for (i = 0; i < data->nbitmaps; i++) {
> +        qemuBlockNamedNodeDataBitmapPtr bitmap = data->bitmaps[i];
> +
> +        virBufferAsprintf(buf, "%8s: recod:%d busy:%d persist:%d inconist:%d gran:%llu dirty:%llu\n",

s/recod/record/
s/inconist/inconsist/


> +
> +    if (!(nodedata = qemuMonitorJSONBlockGetNamedNodeDataJSON(nodedatajson))) {
> +        VIR_TEST_VERBOSE("failed to load nodedata JSON\n");

Drop the \n (most VIR_TEST_VERBOSE() does not use it)

> +++ b/tests/qemublocktestdata/bitmap/basic.json
> @@ -0,0 +1,117 @@
> +[
> +    {
> +        "iops_rd": 0,
> +        "detect_zeroes": "off",
> +        "image": {
> +            "virtual-size": 10485760,
> +            "filename": "/tmp/pull4.qcow2",

It might be fun to record in the commit message how you created this 
temp file.  But not strictly necessary.

> +++ b/tests/qemublocktestdata/bitmap/basic.out
> @@ -0,0 +1,6 @@
> +libvirt-1-format:
> +  current: recod:1 busy:0 persist:1 inconist:0 gran:65536 dirty:0
> +        d: recod:0 busy:0 persist:1 inconist:0 gran:65536 dirty:0
> +        c: recod:0 busy:0 persist:1 inconist:0 gran:65536 dirty:0
> +        b: recod:0 busy:0 persist:1 inconist:0 gran:65536 dirty:0
> +        a: recod:0 busy:0 persist:1 inconist:0 gran:65536 dirty:0
> 

Fallout here when you fix the earlier output line.

With typos fixed,
Reviewed-by: Eric Blake <eblake at redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




More information about the libvir-list mailing list