tests: qemublock: Add test for bitmap detection

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.

The sequence of bitmaps was created by the libvirt checkpoint API with
the following sequence of commands:

virsh checkpoint-create-as VM --name a
virsh checkpoint-create-as VM --name b
virsh checkpoint-create-as VM --name c
virsh checkpoint-create-as VM --name d
virsh checkpoint-create-as VM --name current

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Peter Krempa
2019-12-12 13:37:01 +01:00
parent 7a185d2f6e
commit 9aac9d5bda
3 changed files with 198 additions and 0 deletions

View File

@@ -0,0 +1,117 @@
[
{
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 10485760,
"filename": "/tmp/pull4.qcow2",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 200704,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false
}
},
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-1-format",
"backing_file_depth": 0,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"dirty-bitmaps": [
{
"name": "current",
"recording": true,
"persistent": true,
"busy": false,
"status": "active",
"granularity": 65536,
"count": 0
},
{
"name": "d",
"recording": false,
"persistent": true,
"busy": false,
"status": "disabled",
"granularity": 65536,
"count": 0
},
{
"name": "c",
"recording": false,
"persistent": true,
"busy": false,
"status": "disabled",
"granularity": 65536,
"count": 0
},
{
"name": "b",
"recording": false,
"persistent": true,
"busy": false,
"status": "disabled",
"granularity": 65536,
"count": 0
},
{
"name": "a",
"recording": false,
"persistent": true,
"busy": false,
"status": "disabled",
"granularity": 65536,
"count": 0
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/tmp/pull4.qcow2",
"encryption_key_missing": false
},
{
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 197120,
"filename": "/tmp/pull4.qcow2",
"format": "file",
"actual-size": 200704,
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-1-storage",
"backing_file_depth": 0,
"drv": "file",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/tmp/pull4.qcow2",
"encryption_key_missing": false
}
]