If the user passes a too long node name string, we silently truncate it to fit into BlockDriverState.node_name, i.e. to 31 characters. Apart from surprising the user when the node has a different name than requested, this also bypasses the check for duplicate names, so that the same name can be assigned to multiple nodes. Fix this by just making too long node names an error. Reported-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
531 lines
23 KiB
Plaintext
531 lines
23 KiB
Plaintext
QA output created by 051
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
|
|
=== Unknown option ===
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=,if=none,id=drive0
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=,if=none,id=drive0: Block format 'qcow2' does not support the option 'unknown_opt'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on,if=none,id=drive0
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on,if=none,id=drive0: Block format 'qcow2' does not support the option 'unknown_opt'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234,if=none,id=drive0
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234,if=none,id=drive0: Block format 'qcow2' does not support the option 'unknown_opt'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo,if=none,id=drive0
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo,if=none,id=drive0: Block format 'qcow2' does not support the option 'unknown_opt'
|
|
|
|
|
|
=== Unknown protocol option ===
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=: Block protocol 'file' doesn't support the option 'unknown_opt'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=on
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=on: Block protocol 'file' doesn't support the option 'unknown_opt'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=1234
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=1234: Block protocol 'file' doesn't support the option 'unknown_opt'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=foo
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=foo: Block protocol 'file' doesn't support the option 'unknown_opt'
|
|
|
|
|
|
=== Invalid format ===
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=foo
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=foo: Unknown driver 'foo'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,driver=foo
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=foo: Unknown driver 'foo'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,driver=raw,format=qcow2
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=raw,format=qcow2: Cannot specify both 'driver' and 'format'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,driver=qcow2,format=qcow2
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=qcow2,format=qcow2: Cannot specify both 'driver' and 'format'
|
|
|
|
|
|
=== Node names ===
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,node-name=x123456789012345678901234567890
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,node-name=x1234567890123456789012345678901
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,node-name=x1234567890123456789012345678901: Node name too long
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,node-name=All-Types.of_all0wed_chars
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,node-name=123foo
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,node-name=123foo: Invalid node name
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,node-name=_foo
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,node-name=_foo: Invalid node name
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,node-name=foo#12
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,node-name=foo#12: Invalid node name
|
|
|
|
|
|
=== Device without drive ===
|
|
|
|
Testing: -device VIRTIO_SCSI -device scsi-hd
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: -device scsi-hd: drive property not set
|
|
|
|
|
|
=== Overriding backing file ===
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,driver=qcow2,backing.file.filename=TEST_DIR/t.qcow2.orig,if=none,id=drive0 -nodefaults
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) info block
|
|
drive0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
|
|
Removable device: not locked, tray closed
|
|
Cache mode: writeback
|
|
Backing file: TEST_DIR/t.qcow2.orig (chain depth: 1)
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,driver=raw,backing.file.filename=TEST_DIR/t.qcow2.orig
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=raw,backing.file.filename=TEST_DIR/t.qcow2.orig: Driver doesn't support backing files
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,file.backing.driver=file,file.backing.filename=TEST_DIR/t.qcow2.orig
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.backing.driver=file,file.backing.filename=TEST_DIR/t.qcow2.orig: Driver doesn't support backing files
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,file.backing.driver=qcow2,file.backing.file.filename=TEST_DIR/t.qcow2.orig
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.backing.driver=qcow2,file.backing.file.filename=TEST_DIR/t.qcow2.orig: Driver doesn't support backing files
|
|
|
|
|
|
=== Enable and disable lazy refcounting on the command line, plus some invalid values ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=off
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=: Parameter 'lazy-refcounts' expects 'on' or 'off'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42: Parameter 'lazy-refcounts' expects 'on' or 'off'
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo: Parameter 'lazy-refcounts' expects 'on' or 'off'
|
|
|
|
|
|
=== With version 2 images enabling lazy refcounts must fail ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on: Lazy refcounts require a qcow2 image with at least qemu 1.1 compatibility level
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=off
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
|
|
=== No medium ===
|
|
|
|
Testing: -drive if=floppy
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive if=ide,media=cdrom
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive if=ide
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: Initialization of device ide-hd failed: Device needs media, but drive is empty
|
|
|
|
Testing: -drive if=virtio
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: -drive if=virtio: Device needs media, but drive is empty
|
|
|
|
Testing: -drive if=none,id=disk -device ide-cd,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-cd,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive if=none,id=disk -device ide-drive,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: -device ide-drive,drive=disk: Device needs media, but drive is empty
|
|
|
|
Testing: -drive if=none,id=disk -device ide-hd,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: -device ide-hd,drive=disk: Device needs media, but drive is empty
|
|
|
|
Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-disk,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: -device scsi-disk,drive=disk: Device needs media, but drive is empty
|
|
|
|
Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-hd,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: -device scsi-hd,drive=disk: Device needs media, but drive is empty
|
|
|
|
|
|
=== Read-only ===
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=floppy,readonly=on
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=ide,media=cdrom,readonly=on
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=ide,readonly=on
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: Initialization of device ide-hd failed: Block node is read-only
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=virtio,readonly=on
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device ide-cd,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-cd,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device ide-drive,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: -device ide-drive,drive=disk: Block node is read-only
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device ide-hd,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: -device ide-hd,drive=disk: Block node is read-only
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-disk,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-hd,drive=disk
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
|
|
=== Cache modes ===
|
|
|
|
Testing: -drive driver=null-co,cache=none
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive driver=null-co,cache=directsync
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive driver=null-co,cache=writeback
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive driver=null-co,cache=writethrough
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive driver=null-co,cache=unsafe
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive driver=null-co,cache=invalid_value
|
|
QEMU_PROG: -drive driver=null-co,cache=invalid_value: invalid cache option
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,cache=writeback,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) info block
|
|
drive0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
|
|
Removable device: not locked, tray closed
|
|
Cache mode: writeback
|
|
Backing file: TEST_DIR/t.qcow2.base (chain depth: 1)
|
|
(qemu) info block file
|
|
|
|
file: TEST_DIR/t.qcow2 (file)
|
|
Cache mode: writeback
|
|
(qemu) info block backing
|
|
backing: TEST_DIR/t.qcow2.base (qcow2, read-only)
|
|
Cache mode: writeback, ignore flushes
|
|
(qemu) info block backing-file
|
|
|
|
backing-file: TEST_DIR/t.qcow2.base (file, read-only)
|
|
Cache mode: writeback, ignore flushes
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,cache=writethrough,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) info block
|
|
drive0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
|
|
Removable device: not locked, tray closed
|
|
Cache mode: writethrough
|
|
Backing file: TEST_DIR/t.qcow2.base (chain depth: 1)
|
|
(qemu) info block file
|
|
|
|
file: TEST_DIR/t.qcow2 (file)
|
|
Cache mode: writeback
|
|
(qemu) info block backing
|
|
backing: TEST_DIR/t.qcow2.base (qcow2, read-only)
|
|
Cache mode: writeback, ignore flushes
|
|
(qemu) info block backing-file
|
|
|
|
backing-file: TEST_DIR/t.qcow2.base (file, read-only)
|
|
Cache mode: writeback, ignore flushes
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,cache=unsafe,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) info block
|
|
drive0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
|
|
Removable device: not locked, tray closed
|
|
Cache mode: writeback, ignore flushes
|
|
Backing file: TEST_DIR/t.qcow2.base (chain depth: 1)
|
|
(qemu) info block file
|
|
|
|
file: TEST_DIR/t.qcow2 (file)
|
|
Cache mode: writeback, ignore flushes
|
|
(qemu) info block backing
|
|
backing: TEST_DIR/t.qcow2.base (qcow2, read-only)
|
|
Cache mode: writeback, ignore flushes
|
|
(qemu) info block backing-file
|
|
|
|
backing-file: TEST_DIR/t.qcow2.base (file, read-only)
|
|
Cache mode: writeback, ignore flushes
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,cache=invalid_value,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,cache=invalid_value,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0: invalid cache option
|
|
|
|
|
|
=== Specifying the protocol layer ===
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,file.driver=file
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
|
|
=== Leaving out required options ===
|
|
|
|
Testing: -drive driver=file
|
|
QEMU_PROG: -drive driver=file: The 'file' block driver requires a file name
|
|
|
|
Testing: -drive driver=file,filename=
|
|
QEMU_PROG: -drive driver=file,filename=: The 'file' block driver requires a file name
|
|
|
|
Testing: -drive driver=nbd
|
|
QEMU_PROG: -drive driver=nbd: NBD server address missing
|
|
|
|
Testing: -drive driver=raw
|
|
QEMU_PROG: -drive driver=raw: A block device must be specified for "file"
|
|
|
|
Testing: -drive file.driver=file
|
|
QEMU_PROG: -drive file.driver=file: The 'file' block driver requires a file name
|
|
|
|
Testing: -drive file.driver=nbd
|
|
QEMU_PROG: -drive file.driver=nbd: NBD server address missing
|
|
|
|
Testing: -drive file.driver=raw
|
|
QEMU_PROG: -drive file.driver=raw: A block device must be specified for "file"
|
|
|
|
Testing: -drive foo=bar
|
|
QEMU_PROG: -drive foo=bar: Must specify either driver or file
|
|
|
|
|
|
=== Specifying both an option and its legacy alias ===
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,iops=1234,throttling.iops-total=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,iops=1234,throttling.iops-total=5678: 'throttling.iops-total' and its alias 'iops' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,iops_rd=1234,throttling.iops-read=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,iops_rd=1234,throttling.iops-read=5678: 'throttling.iops-read' and its alias 'iops_rd' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,iops_wr=1234,throttling.iops-write=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,iops_wr=1234,throttling.iops-write=5678: 'throttling.iops-write' and its alias 'iops_wr' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps=1234,throttling.bps-total=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps=1234,throttling.bps-total=5678: 'throttling.bps-total' and its alias 'bps' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps_rd=1234,throttling.bps-read=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps_rd=1234,throttling.bps-read=5678: 'throttling.bps-read' and its alias 'bps_rd' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps_wr=1234,throttling.bps-write=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps_wr=1234,throttling.bps-write=5678: 'throttling.bps-write' and its alias 'bps_wr' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,iops_max=1234,throttling.iops-total-max=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,iops_max=1234,throttling.iops-total-max=5678: 'throttling.iops-total-max' and its alias 'iops_max' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,iops_rd_max=1234,throttling.iops-read-max=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,iops_rd_max=1234,throttling.iops-read-max=5678: 'throttling.iops-read-max' and its alias 'iops_rd_max' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,iops_wr_max=1234,throttling.iops-write-max=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,iops_wr_max=1234,throttling.iops-write-max=5678: 'throttling.iops-write-max' and its alias 'iops_wr_max' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps_max=1234,throttling.bps-total-max=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps_max=1234,throttling.bps-total-max=5678: 'throttling.bps-total-max' and its alias 'bps_max' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps_rd_max=1234,throttling.bps-read-max=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps_rd_max=1234,throttling.bps-read-max=5678: 'throttling.bps-read-max' and its alias 'bps_rd_max' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps_wr_max=1234,throttling.bps-write-max=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps_wr_max=1234,throttling.bps-write-max=5678: 'throttling.bps-write-max' and its alias 'bps_wr_max' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,iops_size=1234,throttling.iops-size=5678
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,iops_size=1234,throttling.iops-size=5678: 'throttling.iops-size' and its alias 'iops_size' can't be used at the same time
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,readonly=on,read-only=off
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,readonly=on,read-only=off: 'read-only' and its alias 'readonly' can't be used at the same time
|
|
|
|
|
|
=== Catching negative/large throttling values ===
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,iops=-1
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,iops=-1: bps/iops/max values must be within [0, 1000000000000000]
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps=-2
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps=-2: bps/iops/max values must be within [0, 1000000000000000]
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps_rd=-3
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps_rd=-3: bps/iops/max values must be within [0, 1000000000000000]
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps_rd_max=-3
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps_rd_max=-3: bps/iops/max values must be within [0, 1000000000000000]
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,throttling.iops-total=-4
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,throttling.iops-total=-4: bps/iops/max values must be within [0, 1000000000000000]
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,throttling.bps-total=-5
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,throttling.bps-total=-5: bps/iops/max values must be within [0, 1000000000000000]
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps=0
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps=1
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps=1000000000000000
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps=1000000000000001
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps=1000000000000001: bps/iops/max values must be within [0, 1000000000000000]
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,bps=9999999999999999
|
|
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps=9999999999999999: bps/iops/max values must be within [0, 1000000000000000]
|
|
|
|
|
|
=== Parsing protocol from file name ===
|
|
|
|
Testing: -hda foo:bar
|
|
QEMU_PROG: -hda foo:bar: Unknown protocol 'foo'
|
|
|
|
Testing: -drive file=foo:bar
|
|
QEMU_PROG: -drive file=foo:bar: Unknown protocol 'foo'
|
|
|
|
Testing: -drive file.filename=foo:bar
|
|
QEMU_PROG: -drive file.filename=foo:bar: Could not open 'foo:bar': No such file or directory
|
|
|
|
Testing: -hda file:TEST_DIR/t.qcow2
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=file:TEST_DIR/t.qcow2
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) quit
|
|
|
|
Testing: -drive file.filename=file:TEST_DIR/t.qcow2
|
|
QEMU_PROG: -drive file.filename=file:TEST_DIR/t.qcow2: Could not open 'file:TEST_DIR/t.qcow2': No such file or directory
|
|
|
|
|
|
=== Snapshot mode ===
|
|
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=drive0 -snapshot
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x22 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,snapshot=on,if=none,id=drive0
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x22 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) quit
|
|
|
|
Testing: -drive file.filename=TEST_DIR/t.qcow2,driver=qcow2,snapshot=on,if=none,id=drive0
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x22 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) quit
|
|
|
|
Testing: -drive file.filename=TEST_DIR/t.qcow2,driver=qcow2,if=none,id=drive0 -snapshot
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x22 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=file:TEST_DIR/t.qcow2,if=none,id=drive0 -snapshot
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x22 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=file:TEST_DIR/t.qcow2,snapshot=on,if=none,id=drive0
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x22 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=drive0 -snapshot
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x22 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) quit
|
|
|
|
Testing: -drive file=TEST_DIR/t.qcow2,snapshot=on,if=none,id=drive0
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x22 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) quit
|
|
|
|
read 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Testing: -drive file=TEST_DIR/t.qcow2,snapshot=off,if=none,id=drive0
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x22 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) quit
|
|
|
|
read 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Testing: -drive file=TEST_DIR/t.qcow2,snapshot=on,if=none,id=drive0
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) qemu-io drive0 "write -P 0x33 0 4k"
|
|
wrote 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(qemu) commit drive0
|
|
(qemu) quit
|
|
|
|
read 4096/4096 bytes at offset 0
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
*** done
|