909936234c
Basically, bdrv_refresh_filename() should respect all children of a BlockDriverState. However, generally those children are driver-specific, so this function cannot handle the general case. On the other hand, there are only few drivers which use other children than @file and @backing (that being vmdk, quorum, and blkverify). Most block drivers only use @file and/or @backing (if they use any children at all). Both can be implemented directly in bdrv_refresh_filename. The user overriding the file's filename is already handled, however, the user overriding the backing file is not. If this is done, opening the BDS with the plain filename of its file will not be correct, so we may not set bs->exact_filename in that case. iotest 051 contains test cases for overriding the backing file, and so its output changes with this patch applied. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Message-id: 20190201192935.18394-6-mreitz@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
462 lines
21 KiB
Plaintext
462 lines
21 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): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.orig"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "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=virtio
|
|
QEMU X.Y.Z monitor - type 'help' for more information
|
|
(qemu) QEMU_PROG: -drive if=virtio: Device needs media, but drive is empty
|
|
|
|
|
|
=== 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
|
|
|
|
|
|
=== 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): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "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): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "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): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "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)
|
|
Testing: -drive driver=null-co,snapshot=on
|
|
QEMU_PROG: -drive driver=null-co,snapshot=on: Could not get temporary filename: No such file or directory
|
|
|
|
*** done
|