b76b4f6045
Instead of manually creating the BlockdevCreateOptions object, use a visitor to parse the given options into the QAPI object. This involves translation from the old command line syntax to the syntax mandated by the QAPI schema. Option names are still checked against qcow2_create_opts, so only the old option names are allowed on the command line, even if they are translated in qcow2_create(). In contrast, new option values are optionally recognised besides the old values: 'compat' accepts 'v2'/'v3' as an alias for '0.10'/'1.1', and 'encrypt.format' accepts 'qcow' as an alias for 'aes' now. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
156 lines
5.6 KiB
Plaintext
156 lines
5.6 KiB
Plaintext
QA output created by 112
|
|
|
|
=== refcount_bits limits ===
|
|
|
|
qemu-img: TEST_DIR/t.IMGFMT: Refcount width must be a power of two and may not exceed 64 bits
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
qemu-img: TEST_DIR/t.IMGFMT: Refcount width must be a power of two and may not exceed 64 bits
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 refcount_bits=-1
|
|
qemu-img: TEST_DIR/t.IMGFMT: Refcount width must be a power of two and may not exceed 64 bits
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
qemu-img: TEST_DIR/t.IMGFMT: Refcount width must be a power of two and may not exceed 64 bits
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 1
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 64
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 16
|
|
|
|
=== refcount_bits and compat=0.10 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 16
|
|
qemu-img: TEST_DIR/t.IMGFMT: Different refcount widths than 16 bits require compatibility level 1.1 or above (use version=v3 or greater)
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
qemu-img: TEST_DIR/t.IMGFMT: Different refcount widths than 16 bits require compatibility level 1.1 or above (use version=v3 or greater)
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
=== Snapshot limit on refcount_bits=1 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 1
|
|
wrote 512/512 bytes at offset 0
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
qemu-img: Could not create snapshot 'foo': -22 (Invalid argument)
|
|
Leaked cluster 6 refcount=1 reference=0
|
|
|
|
1 leaked clusters were found on the image.
|
|
This means waste of disk space, but no harm to data.
|
|
|
|
=== Snapshot limit on refcount_bits=2 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 2
|
|
wrote 512/512 bytes at offset 0
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
qemu-img: Could not create snapshot 'baz': -22 (Invalid argument)
|
|
Leaked cluster 7 refcount=1 reference=0
|
|
|
|
1 leaked clusters were found on the image.
|
|
This means waste of disk space, but no harm to data.
|
|
|
|
=== Compressed clusters with refcount_bits=1 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 1
|
|
wrote 65536/65536 bytes at offset 0
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 65536
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
|
|
=== MSb set in 64 bit refcount ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 64
|
|
wrote 512/512 bytes at offset 0
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 512/512 bytes at offset 0
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Snapshot on maximum 64 bit refcount value ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 64
|
|
wrote 512/512 bytes at offset 0
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
qemu-img: Could not create snapshot 'foo': -22 (Invalid argument)
|
|
Leaked cluster 5 refcount=18446744073709551615 reference=1
|
|
Leaked cluster 6 refcount=1 reference=0
|
|
|
|
2 leaked clusters were found on the image.
|
|
This means waste of disk space, but no harm to data.
|
|
|
|
=== Amend from refcount_bits=16 to refcount_bits=1 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 16
|
|
wrote 33554432/33554432 bytes at offset 16777216
|
|
32 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
refcount bits: 1
|
|
|
|
=== Amend from refcount_bits=1 to refcount_bits=64 ===
|
|
|
|
No errors were found on the image.
|
|
refcount bits: 64
|
|
|
|
=== Amend to compat=0.10 ===
|
|
|
|
qemu-img: compat=0.10 requires refcount_bits=16
|
|
qemu-img: Error while amending options: Operation not supported
|
|
refcount bits: 64
|
|
No errors were found on the image.
|
|
refcount bits: 16
|
|
refcount bits: 16
|
|
qemu-img: Different refcount widths than 16 bits require compatibility level 1.1 or above (use compat=1.1 or greater)
|
|
qemu-img: Error while amending options: Invalid argument
|
|
refcount bits: 16
|
|
|
|
=== Amend with snapshot ===
|
|
|
|
wrote 16777216/16777216 bytes at offset 0
|
|
16 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
qemu-img: Cannot decrease refcount entry width to 1 bits: Cluster at offset 0x50000 has a refcount of 2
|
|
qemu-img: Error while amending options: Invalid argument
|
|
No errors were found on the image.
|
|
refcount bits: 16
|
|
No errors were found on the image.
|
|
refcount bits: 2
|
|
|
|
=== Testing too many references for check ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
refcount bits: 1
|
|
wrote 65536/65536 bytes at offset 0
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
ERROR: overflow cluster offset=0x50000
|
|
Use qemu-img amend to increase the refcount entry width or qemu-img convert to create a clean copy if the image cannot be opened for writing
|
|
|
|
1 errors were found on the image.
|
|
Data may be corrupted, or further writes to the image may corrupt it.
|
|
refcount bits: 2
|
|
ERROR cluster 5 refcount=1 reference=2
|
|
Repairing cluster 5 refcount=1 reference=2
|
|
Repairing OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=2
|
|
Repairing OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=2
|
|
The following inconsistencies were found and repaired:
|
|
|
|
0 leaked clusters
|
|
3 corruptions
|
|
|
|
Double checking the fixed image now...
|
|
No errors were found on the image.
|
|
|
|
=== Multiple walks necessary during amend ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=65536
|
|
wrote 29696/29696 bytes at offset 0
|
|
29 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(66.67/100%)
|
|
(50.00/100%)
|
|
refcount bits: 64
|
|
No errors were found on the image.
|
|
*** done
|