b87ac96651
Rather than open-coding two different ways to check for an unwanted negative sign, reuse the same code in both functions. That way, if we decide down the road to accept "-0" instead of rejecting it, we have fewer places to change. Also, it means we now get ERANGE instead of EINVAL for negative values in qemu_strtosz, which is reasonable for what it represents. This in turn changes the expected output of a couple of iotests. The change is not quite complete: negative fractional scaled values can trip us up. This will be fixed in a later patch addressing other issues with fractional scaled values. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Hanna Czenczek <hreitz@redhat.com> Message-Id: <20230522190441.64278-18-eblake@redhat.com>
159 lines
4.2 KiB
Plaintext
159 lines
4.2 KiB
Plaintext
QA output created by 178
|
|
== Input validation ==
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
|
|
qemu-img: Either --size N or one filename must be specified.
|
|
qemu-img: --size N cannot be used together with a filename.
|
|
qemu-img: At most one filename argument is allowed.
|
|
qemu-img: Either --size N or one filename must be specified.
|
|
qemu-img: --image-opts, -f, and -l require a filename argument.
|
|
qemu-img: --image-opts, -f, and -l require a filename argument.
|
|
qemu-img: --image-opts, -f, and -l require a filename argument.
|
|
qemu-img: Invalid option list: ,
|
|
qemu-img: Invalid parameter 'snapshot.foo'
|
|
qemu-img: Failed in parsing snapshot param 'snapshot.foo=bar'
|
|
qemu-img: --output must be used with human or json as argument.
|
|
qemu-img: Invalid image size specified. Must be between 0 and 9223372036854775807.
|
|
qemu-img: Unknown file format 'foo'
|
|
|
|
== Size calculation for a new file (human) ==
|
|
|
|
required size: 0
|
|
fully allocated size: 0
|
|
required size: 2147483648
|
|
fully allocated size: 2147483648
|
|
required size: 68719476736
|
|
fully allocated size: 68719476736
|
|
required size: 274877906944
|
|
fully allocated size: 274877906944
|
|
required size: 1099511627776
|
|
fully allocated size: 1099511627776
|
|
required size: 2251799813685248
|
|
fully allocated size: 2251799813685248
|
|
required size: 8070450532247928832
|
|
fully allocated size: 8070450532247928832
|
|
|
|
== Empty raw input image (human) ==
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0
|
|
required size: 0
|
|
fully allocated size: 0
|
|
|
|
converted image file size in bytes: 0
|
|
|
|
== raw input image with data (human) ==
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
|
|
required size: 1073741824
|
|
fully allocated size: 1073741824
|
|
wrote 512/512 bytes at offset 512
|
|
512 bytes, 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)
|
|
wrote 64512/64512 bytes at offset 134217728
|
|
63 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
required size: 1073741824
|
|
fully allocated size: 1073741824
|
|
|
|
converted image file size in bytes: 1073741824
|
|
|
|
== raw input image and preallocation (human) ==
|
|
|
|
required size: 1073741824
|
|
fully allocated size: 1073741824
|
|
|
|
converted image file size in bytes: 1073741824
|
|
|
|
== Fully-allocated raw input image (human) ==
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=8388608
|
|
wrote 8388608/8388608 bytes at offset 0
|
|
8 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
required size: 8388608
|
|
fully allocated size: 8388608
|
|
|
|
converted image file size in bytes: 8388608
|
|
|
|
== Size calculation for a new file (json) ==
|
|
|
|
{
|
|
"required": 0,
|
|
"fully-allocated": 0
|
|
}
|
|
{
|
|
"required": 2147483648,
|
|
"fully-allocated": 2147483648
|
|
}
|
|
{
|
|
"required": 68719476736,
|
|
"fully-allocated": 68719476736
|
|
}
|
|
{
|
|
"required": 274877906944,
|
|
"fully-allocated": 274877906944
|
|
}
|
|
{
|
|
"required": 1099511627776,
|
|
"fully-allocated": 1099511627776
|
|
}
|
|
{
|
|
"required": 2251799813685248,
|
|
"fully-allocated": 2251799813685248
|
|
}
|
|
{
|
|
"required": 8070450532247928832,
|
|
"fully-allocated": 8070450532247928832
|
|
}
|
|
|
|
== Empty raw input image (json) ==
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0
|
|
{
|
|
"required": 0,
|
|
"fully-allocated": 0
|
|
}
|
|
|
|
converted image file size in bytes: 0
|
|
|
|
== raw input image with data (json) ==
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
|
|
{
|
|
"required": 1073741824,
|
|
"fully-allocated": 1073741824
|
|
}
|
|
wrote 512/512 bytes at offset 512
|
|
512 bytes, 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)
|
|
wrote 64512/64512 bytes at offset 134217728
|
|
63 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
{
|
|
"required": 1073741824,
|
|
"fully-allocated": 1073741824
|
|
}
|
|
|
|
converted image file size in bytes: 1073741824
|
|
|
|
== raw input image and preallocation (json) ==
|
|
|
|
{
|
|
"required": 1073741824,
|
|
"fully-allocated": 1073741824
|
|
}
|
|
|
|
converted image file size in bytes: 1073741824
|
|
|
|
== Fully-allocated raw input image (json) ==
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=8388608
|
|
wrote 8388608/8388608 bytes at offset 0
|
|
8 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
{
|
|
"required": 8388608,
|
|
"fully-allocated": 8388608
|
|
}
|
|
|
|
converted image file size in bytes: 8388608
|
|
*** done
|