bdrv_img_create() takes an Error ** argument and uses it in the conventional way, except for one place: when qemu_opts_do_parse() fails, it first reports its error to stderr or the HMP monitor with error_report_err(), then error_setg()'s a generic error. When the caller reports that second error similarly, this produces two consecutive error messages on stderr or the HMP monitor. When the caller does something else with it, such as send it via QMP, the first error still goes to stderr or the HMP monitor. Fortunately, no such caller exists. Simply use the first error as is. Update expected output of qemu-iotest 049 accordingly. Cc: Kevin Wolf <kwolf@redhat.com> Cc: Max Reitz <mreitz@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20181017082702.5581-37-armbru@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com>
208 lines
11 KiB
Plaintext
208 lines
11 KiB
Plaintext
QA output created by 049
|
|
=== Check correct interpretation of suffixes for image size ===
|
|
|
|
== 1. Traditional size parameter ==
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024b
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1k
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1K
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1048576 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1G
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1073741824 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1T
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1099511627776 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024.0
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024.0b
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5k
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1536 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5K
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1536 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1572864 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5G
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1610612736 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5T
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1649267441664 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
== 2. Specifying size via -o ==
|
|
|
|
qemu-img create -f qcow2 -o size=1024 TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1024b TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1k TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1K TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1M TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1048576 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1G TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1073741824 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1T TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1099511627776 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1024.0 TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1024.0b TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1.5k TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1536 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1.5K TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1536 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1.5M TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1572864 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1.5G TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1610612736 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o size=1.5T TEST_DIR/t.qcow2
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1649267441664 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
== 3. Invalid sizes ==
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- -1024
|
|
qemu-img: Image size must be less than 8 EiB!
|
|
|
|
qemu-img create -f qcow2 -o size=-1024 TEST_DIR/t.qcow2
|
|
qemu-img: TEST_DIR/t.qcow2: Value '-1024' is out of range for parameter 'size'
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- -1k
|
|
qemu-img: Image size must be less than 8 EiB!
|
|
|
|
qemu-img create -f qcow2 -o size=-1k TEST_DIR/t.qcow2
|
|
qemu-img: TEST_DIR/t.qcow2: Value '-1k' is out of range for parameter 'size'
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- 1kilobyte
|
|
qemu-img: Invalid image size specified! You may use k, M, G, T, P or E suffixes for
|
|
qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabytes.
|
|
|
|
qemu-img create -f qcow2 -o size=1kilobyte TEST_DIR/t.qcow2
|
|
qemu-img: TEST_DIR/t.qcow2: Parameter 'size' expects a non-negative number below 2^64
|
|
Optional suffix k, M, G, T, P or E means kilo-, mega-, giga-, tera-, peta-
|
|
and exabytes, respectively.
|
|
|
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- foobar
|
|
qemu-img: Invalid image size specified! You may use k, M, G, T, P or E suffixes for
|
|
qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabytes.
|
|
|
|
qemu-img create -f qcow2 -o size=foobar TEST_DIR/t.qcow2
|
|
qemu-img: TEST_DIR/t.qcow2: Parameter 'size' expects a non-negative number below 2^64
|
|
Optional suffix k, M, G, T, P or E means kilo-, mega-, giga-, tera-, peta-
|
|
and exabytes, respectively.
|
|
|
|
== Check correct interpretation of suffixes for cluster size ==
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=1024 TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=1024 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=1024b TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=1024 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=1k TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=1024 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=1K TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=1024 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=1M TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=1048576 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=1024.0 TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=1024 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=1024.0b TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=1024 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=0.5k TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=512 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=0.5K TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=512 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o cluster_size=0.5M TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=524288 lazy_refcounts=off refcount_bits=16
|
|
|
|
== Check compat level option ==
|
|
|
|
qemu-img create -f qcow2 -o compat=0.10 TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat=0.10 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o compat=1.1 TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat=1.1 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o compat=0.42 TEST_DIR/t.qcow2 64M
|
|
qemu-img: TEST_DIR/t.qcow2: Invalid parameter '0.42'
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat=0.42 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o compat=foobar TEST_DIR/t.qcow2 64M
|
|
qemu-img: TEST_DIR/t.qcow2: Invalid parameter 'foobar'
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat=foobar cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
== Check preallocation option ==
|
|
|
|
qemu-img create -f qcow2 -o preallocation=off TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=65536 preallocation=off lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o preallocation=metadata TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=65536 preallocation=metadata lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o preallocation=1234 TEST_DIR/t.qcow2 64M
|
|
qemu-img: TEST_DIR/t.qcow2: Invalid parameter '1234'
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 cluster_size=65536 preallocation=1234 lazy_refcounts=off refcount_bits=16
|
|
|
|
== Check encryption option ==
|
|
|
|
qemu-img create -f qcow2 -o encryption=off TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 --object secret,id=sec0,data=123456 -o encryption=on,encrypt.key-secret=sec0 TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 encryption=on encrypt.key-secret=sec0 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
== Check lazy_refcounts option (only with v3) ==
|
|
|
|
qemu-img create -f qcow2 -o compat=1.1,lazy_refcounts=off TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat=1.1 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o compat=1.1,lazy_refcounts=on TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat=1.1 cluster_size=65536 lazy_refcounts=on refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o compat=0.10,lazy_refcounts=off TEST_DIR/t.qcow2 64M
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat=0.10 cluster_size=65536 lazy_refcounts=off refcount_bits=16
|
|
|
|
qemu-img create -f qcow2 -o compat=0.10,lazy_refcounts=on TEST_DIR/t.qcow2 64M
|
|
qemu-img: TEST_DIR/t.qcow2: Lazy refcounts only supported with compatibility level 1.1 and above (use version=v3 or greater)
|
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat=0.10 cluster_size=65536 lazy_refcounts=on refcount_bits=16
|
|
|
|
*** done
|