QA output created by qemu-img-bitmaps === Initial image setup === Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=10485760 wrote 1048576/1048576 bytes at offset 3145728 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) Formatting 'TEST_DIR/t.IMGFMT.orig', fmt=IMGFMT size=10485760 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT wrote 1048576/1048576 bytes at offset 0 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) wrote 1048576/1048576 bytes at offset 3145728 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) wrote 1048576/1048576 bytes at offset 1048576 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) wrote 1048576/1048576 bytes at offset 2097152 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) === Bitmap preservation not possible to non-qcow2 === qemu-img: Format driver 'raw' does not support bitmaps === Convert with bitmap preservation === image: TEST_DIR/t.IMGFMT file format: IMGFMT virtual size: 10 MiB (10485760 bytes) cluster_size: 65536 Format specific information: bitmaps: [0]: flags: name: b1 granularity: 524288 [1]: flags: [0]: auto name: b2 granularity: 65536 corrupt: false image: TEST_DIR/t.IMGFMT file format: IMGFMT virtual size: 10 MiB (10485760 bytes) cluster_size: 65536 Format specific information: bitmaps: [0]: flags: name: b1 granularity: 524288 [1]: flags: [0]: auto name: b2 granularity: 65536 [2]: flags: name: b0 granularity: 65536 corrupt: false === Merge from top layer into backing image === image: TEST_DIR/t.IMGFMT file format: IMGFMT virtual size: 10 MiB (10485760 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.base backing file format: IMGFMT Format specific information: bitmaps: [0]: flags: name: b1 granularity: 524288 [1]: flags: [0]: auto name: b2 granularity: 65536 [2]: flags: name: b0 granularity: 65536 corrupt: false image: TEST_DIR/t.IMGFMT.base file format: IMGFMT virtual size: 10 MiB (10485760 bytes) cluster_size: 65536 Format specific information: bitmaps: [0]: flags: [0]: auto name: b0 granularity: 65536 [1]: flags: [0]: auto name: b3 granularity: 65536 corrupt: false === Check bitmap contents === [{ "start": 0, "length": 3145728, "depth": 0, "present": true, "zero": false, "data": true, "offset": OFFSET}, { "start": 3145728, "length": 1048576, "depth": 0, "present": false, "zero": false, "data": false}, { "start": 4194304, "length": 6291456, "depth": 0, "present": true, "zero": false, "data": true, "offset": OFFSET}] [{ "start": 0, "length": 1048576, "depth": 0, "present": true, "zero": false, "data": true, "offset": OFFSET}, { "start": 1048576, "length": 1048576, "depth": 0, "present": false, "zero": false, "data": false}, { "start": 2097152, "length": 8388608, "depth": 0, "present": true, "zero": false, "data": true, "offset": OFFSET}] [{ "start": 0, "length": 2097152, "depth": 0, "present": true, "zero": false, "data": true, "offset": OFFSET}, { "start": 2097152, "length": 1048576, "depth": 0, "present": false, "zero": false, "data": false}, { "start": 3145728, "length": 7340032, "depth": 0, "present": true, "zero": false, "data": true, "offset": OFFSET}] [{ "start": 0, "length": 2097152, "depth": 0, "present": true, "zero": false, "data": true, "offset": OFFSET}, { "start": 2097152, "length": 1048576, "depth": 0, "present": false, "zero": false, "data": false}, { "start": 3145728, "length": 7340032, "depth": 0, "present": true, "zero": false, "data": true, "offset": OFFSET}] === Check handling of inconsistent bitmap === image: TEST_DIR/t.IMGFMT file format: IMGFMT virtual size: 10 MiB (10485760 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.base backing file format: IMGFMT Format specific information: bitmaps: [0]: flags: [0]: in-use [1]: auto name: b2 granularity: 65536 [1]: flags: [0]: in-use name: b0 granularity: 65536 [2]: flags: [0]: auto name: b4 granularity: 65536 corrupt: false qemu-img: Failed to populate bitmap b0: Bitmap 'b0' is inconsistent and cannot be used Try block-dirty-bitmap-remove to delete this bitmap from disk image: TEST_DIR/t.IMGFMT.copy file format: IMGFMT virtual size: 10 MiB (10485760 bytes) cluster_size: 65536 Format specific information: bitmaps: [0]: flags: name: b0 granularity: 65536 [1]: flags: [0]: auto name: b4 granularity: 65536 corrupt: false *** done