| 1 | QA output created by 051 |
| 2 | Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
| 3 | Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT |
| 4 | |
| 5 | === Unknown option === |
| 6 | |
| 7 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=,if=none,id=drive0 |
| 8 | 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' |
| 9 | |
| 10 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on,if=none,id=drive0 |
| 11 | 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' |
| 12 | |
| 13 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234,if=none,id=drive0 |
| 14 | 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' |
| 15 | |
| 16 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo,if=none,id=drive0 |
| 17 | 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' |
| 18 | |
| 19 | |
| 20 | === Unknown protocol option === |
| 21 | |
| 22 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt= |
| 23 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=: Block protocol 'file' doesn't support the option 'unknown_opt' |
| 24 | |
| 25 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=on |
| 26 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=on: Block protocol 'file' doesn't support the option 'unknown_opt' |
| 27 | |
| 28 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=1234 |
| 29 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=1234: Block protocol 'file' doesn't support the option 'unknown_opt' |
| 30 | |
| 31 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=foo |
| 32 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=foo: Block protocol 'file' doesn't support the option 'unknown_opt' |
| 33 | |
| 34 | |
| 35 | === Invalid format === |
| 36 | |
| 37 | Testing: -drive file=TEST_DIR/t.qcow2,format=foo |
| 38 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=foo: Unknown driver 'foo' |
| 39 | |
| 40 | Testing: -drive file=TEST_DIR/t.qcow2,driver=foo |
| 41 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=foo: Unknown driver 'foo' |
| 42 | |
| 43 | Testing: -drive file=TEST_DIR/t.qcow2,driver=raw,format=qcow2 |
| 44 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=raw,format=qcow2: Cannot specify both 'driver' and 'format' |
| 45 | |
| 46 | Testing: -drive file=TEST_DIR/t.qcow2,driver=qcow2,format=qcow2 |
| 47 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=qcow2,format=qcow2: Cannot specify both 'driver' and 'format' |
| 48 | |
| 49 | |
| 50 | === Node names === |
| 51 | |
| 52 | Testing: -drive file=TEST_DIR/t.qcow2,node-name=x123456789012345678901234567890 |
| 53 | QEMU X.Y.Z monitor - type 'help' for more information |
| 54 | (qemu) quit |
| 55 | |
| 56 | Testing: -drive file=TEST_DIR/t.qcow2,node-name=x1234567890123456789012345678901 |
| 57 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,node-name=x1234567890123456789012345678901: Node name too long |
| 58 | |
| 59 | Testing: -drive file=TEST_DIR/t.qcow2,node-name=All-Types.of_all0wed_chars |
| 60 | QEMU X.Y.Z monitor - type 'help' for more information |
| 61 | (qemu) quit |
| 62 | |
| 63 | Testing: -drive file=TEST_DIR/t.qcow2,node-name=123foo |
| 64 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,node-name=123foo: Invalid node-name: '123foo' |
| 65 | |
| 66 | Testing: -drive file=TEST_DIR/t.qcow2,node-name=_foo |
| 67 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,node-name=_foo: Invalid node-name: '_foo' |
| 68 | |
| 69 | Testing: -drive file=TEST_DIR/t.qcow2,node-name=foo#12 |
| 70 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,node-name=foo#12: Invalid node-name: 'foo#12' |
| 71 | |
| 72 | |
| 73 | === Device without drive === |
| 74 | |
| 75 | Testing: -device virtio-scsi -device scsi-hd |
| 76 | QEMU X.Y.Z monitor - type 'help' for more information |
| 77 | QEMU_PROG: -device scsi-hd: drive property not set |
| 78 | |
| 79 | |
| 80 | === Overriding backing file === |
| 81 | |
| 82 | Testing: -drive file=TEST_DIR/t.qcow2,driver=qcow2,backing.file.filename=TEST_DIR/t.qcow2.orig,if=none,id=drive0 -nodefaults |
| 83 | QEMU X.Y.Z monitor - type 'help' for more information |
| 84 | (qemu) info block |
| 85 | 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) |
| 86 | Removable device: not locked, tray closed |
| 87 | Cache mode: writeback |
| 88 | Backing file: TEST_DIR/t.qcow2.orig (chain depth: 1) |
| 89 | (qemu) quit |
| 90 | |
| 91 | Testing: -drive file=TEST_DIR/t.qcow2,driver=raw,backing.file.filename=TEST_DIR/t.qcow2.orig |
| 92 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=raw,backing.file.filename=TEST_DIR/t.qcow2.orig: Driver doesn't support backing files |
| 93 | |
| 94 | Testing: -drive file=TEST_DIR/t.qcow2,file.backing.driver=file,file.backing.filename=TEST_DIR/t.qcow2.orig |
| 95 | 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 |
| 96 | |
| 97 | Testing: -drive file=TEST_DIR/t.qcow2,file.backing.driver=qcow2,file.backing.file.filename=TEST_DIR/t.qcow2.orig |
| 98 | 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 |
| 99 | |
| 100 | |
| 101 | === Enable and disable lazy refcounting on the command line, plus some invalid values === |
| 102 | |
| 103 | Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
| 104 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on |
| 105 | QEMU X.Y.Z monitor - type 'help' for more information |
| 106 | (qemu) quit |
| 107 | |
| 108 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=off |
| 109 | QEMU X.Y.Z monitor - type 'help' for more information |
| 110 | (qemu) quit |
| 111 | |
| 112 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts= |
| 113 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=: Parameter 'lazy-refcounts' expects 'on' or 'off' |
| 114 | |
| 115 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42 |
| 116 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42: Parameter 'lazy-refcounts' expects 'on' or 'off' |
| 117 | |
| 118 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo |
| 119 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo: Parameter 'lazy-refcounts' expects 'on' or 'off' |
| 120 | |
| 121 | |
| 122 | === With version 2 images enabling lazy refcounts must fail === |
| 123 | |
| 124 | Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
| 125 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on |
| 126 | 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 |
| 127 | |
| 128 | Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=off |
| 129 | QEMU X.Y.Z monitor - type 'help' for more information |
| 130 | (qemu) quit |
| 131 | |
| 132 | |
| 133 | === No medium === |
| 134 | |
| 135 | Testing: -drive if=floppy |
| 136 | QEMU X.Y.Z monitor - type 'help' for more information |
| 137 | (qemu) quit |
| 138 | |
| 139 | Testing: -drive if=ide,media=cdrom |
| 140 | QEMU X.Y.Z monitor - type 'help' for more information |
| 141 | (qemu) quit |
| 142 | |
| 143 | Testing: -drive if=ide |
| 144 | QEMU X.Y.Z monitor - type 'help' for more information |
| 145 | QEMU_PROG: Device needs media, but drive is empty |
| 146 | |
| 147 | Testing: -drive if=virtio |
| 148 | QEMU X.Y.Z monitor - type 'help' for more information |
| 149 | QEMU_PROG: -drive if=virtio: Device needs media, but drive is empty |
| 150 | |
| 151 | Testing: -drive if=none,id=disk -device ide-cd,drive=disk |
| 152 | QEMU X.Y.Z monitor - type 'help' for more information |
| 153 | (qemu) quit |
| 154 | |
| 155 | Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-cd,drive=disk |
| 156 | QEMU X.Y.Z monitor - type 'help' for more information |
| 157 | (qemu) quit |
| 158 | |
| 159 | Testing: -drive if=none,id=disk -device ide-hd,drive=disk |
| 160 | QEMU X.Y.Z monitor - type 'help' for more information |
| 161 | QEMU_PROG: -device ide-hd,drive=disk: Device needs media, but drive is empty |
| 162 | |
| 163 | Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-hd,drive=disk |
| 164 | QEMU X.Y.Z monitor - type 'help' for more information |
| 165 | QEMU_PROG: -device scsi-hd,drive=disk: Device needs media, but drive is empty |
| 166 | |
| 167 | |
| 168 | === Attach to node in non-default iothread === |
| 169 | |
| 170 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,node-name=disk -object iothread,id=thread0 -device virtio-scsi,iothread=thread0,id=virtio-scsi0 -device scsi-hd,bus=virtio-scsi0.0,drive=disk,share-rw=on -device ide-hd,drive=disk,share-rw=on |
| 171 | QEMU X.Y.Z monitor - type 'help' for more information |
| 172 | (qemu) QEMU_PROG: -device ide-hd,drive=disk,share-rw=on: Cannot change iothread of active block backend |
| 173 | |
| 174 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,node-name=disk -object iothread,id=thread0 -device virtio-scsi,iothread=thread0,id=virtio-scsi0 -device scsi-hd,bus=virtio-scsi0.0,drive=disk,share-rw=on -device virtio-blk-pci,drive=disk,share-rw=on |
| 175 | QEMU X.Y.Z monitor - type 'help' for more information |
| 176 | (qemu) QEMU_PROG: -device virtio-blk-pci,drive=disk,share-rw=on: Cannot change iothread of active block backend |
| 177 | |
| 178 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,node-name=disk -object iothread,id=thread0 -device virtio-scsi,iothread=thread0,id=virtio-scsi0 -device scsi-hd,bus=virtio-scsi0.0,drive=disk,share-rw=on -device lsi53c895a,id=lsi0 -device scsi-hd,bus=lsi0.0,drive=disk,share-rw=on |
| 179 | QEMU X.Y.Z monitor - type 'help' for more information |
| 180 | (qemu) QEMU_PROG: -device scsi-hd,bus=lsi0.0,drive=disk,share-rw=on: HBA does not support iothreads |
| 181 | |
| 182 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,node-name=disk -object iothread,id=thread0 -device virtio-scsi,iothread=thread0,id=virtio-scsi0 -device scsi-hd,bus=virtio-scsi0.0,drive=disk,share-rw=on -device virtio-scsi,id=virtio-scsi1 -device scsi-hd,bus=virtio-scsi1.0,drive=disk,share-rw=on |
| 183 | QEMU X.Y.Z monitor - type 'help' for more information |
| 184 | (qemu) quit |
| 185 | |
| 186 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,node-name=disk -object iothread,id=thread0 -device virtio-scsi,iothread=thread0,id=virtio-scsi0 -device scsi-hd,bus=virtio-scsi0.0,drive=disk,share-rw=on -device virtio-blk-pci,drive=disk,iothread=thread0,share-rw=on |
| 187 | QEMU X.Y.Z monitor - type 'help' for more information |
| 188 | (qemu) QEMU_PROG: -device virtio-blk-pci,drive=disk,iothread=thread0,share-rw=on: Cannot change iothread of active block backend |
| 189 | |
| 190 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,node-name=disk -object iothread,id=thread0 -device virtio-scsi,iothread=thread0,id=virtio-scsi0 -device scsi-hd,bus=virtio-scsi0.0,drive=disk,share-rw=on -device virtio-scsi,id=virtio-scsi1,iothread=thread0 -device scsi-hd,bus=virtio-scsi1.0,drive=disk,share-rw=on |
| 191 | QEMU X.Y.Z monitor - type 'help' for more information |
| 192 | (qemu) quit |
| 193 | |
| 194 | |
| 195 | === Read-only === |
| 196 | |
| 197 | Testing: -drive file=TEST_DIR/t.qcow2,if=floppy,readonly=on |
| 198 | QEMU X.Y.Z monitor - type 'help' for more information |
| 199 | (qemu) quit |
| 200 | |
| 201 | Testing: -drive file=TEST_DIR/t.qcow2,if=ide,media=cdrom,readonly=on |
| 202 | QEMU X.Y.Z monitor - type 'help' for more information |
| 203 | (qemu) quit |
| 204 | |
| 205 | Testing: -drive file=TEST_DIR/t.qcow2,if=ide,readonly=on |
| 206 | QEMU X.Y.Z monitor - type 'help' for more information |
| 207 | QEMU_PROG: Block node is read-only |
| 208 | |
| 209 | Testing: -drive file=TEST_DIR/t.qcow2,if=virtio,readonly=on |
| 210 | QEMU X.Y.Z monitor - type 'help' for more information |
| 211 | (qemu) quit |
| 212 | |
| 213 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device ide-cd,drive=disk |
| 214 | QEMU X.Y.Z monitor - type 'help' for more information |
| 215 | (qemu) quit |
| 216 | |
| 217 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-cd,drive=disk |
| 218 | QEMU X.Y.Z monitor - type 'help' for more information |
| 219 | (qemu) quit |
| 220 | |
| 221 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device ide-hd,drive=disk |
| 222 | QEMU X.Y.Z monitor - type 'help' for more information |
| 223 | QEMU_PROG: -device ide-hd,drive=disk: Block node is read-only |
| 224 | |
| 225 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-hd,drive=disk |
| 226 | QEMU X.Y.Z monitor - type 'help' for more information |
| 227 | (qemu) quit |
| 228 | |
| 229 | |
| 230 | === Cache modes === |
| 231 | |
| 232 | Testing: -drive driver=null-co,read-zeroes=on,cache=none |
| 233 | QEMU X.Y.Z monitor - type 'help' for more information |
| 234 | (qemu) quit |
| 235 | |
| 236 | Testing: -drive driver=null-co,read-zeroes=on,cache=directsync |
| 237 | QEMU X.Y.Z monitor - type 'help' for more information |
| 238 | (qemu) quit |
| 239 | |
| 240 | Testing: -drive driver=null-co,read-zeroes=on,cache=writeback |
| 241 | QEMU X.Y.Z monitor - type 'help' for more information |
| 242 | (qemu) quit |
| 243 | |
| 244 | Testing: -drive driver=null-co,read-zeroes=on,cache=writethrough |
| 245 | QEMU X.Y.Z monitor - type 'help' for more information |
| 246 | (qemu) quit |
| 247 | |
| 248 | Testing: -drive driver=null-co,read-zeroes=on,cache=unsafe |
| 249 | QEMU X.Y.Z monitor - type 'help' for more information |
| 250 | (qemu) quit |
| 251 | |
| 252 | Testing: -drive driver=null-co,cache=invalid_value |
| 253 | QEMU_PROG: -drive driver=null-co,cache=invalid_value: invalid cache option |
| 254 | |
| 255 | 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 |
| 256 | QEMU X.Y.Z monitor - type 'help' for more information |
| 257 | (qemu) info block |
| 258 | 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) |
| 259 | Removable device: not locked, tray closed |
| 260 | Cache mode: writeback |
| 261 | Backing file: TEST_DIR/t.qcow2.base (chain depth: 1) |
| 262 | (qemu) info block file |
| 263 | |
| 264 | file: TEST_DIR/t.qcow2 (file) |
| 265 | Cache mode: writeback |
| 266 | (qemu) info block backing |
| 267 | backing: TEST_DIR/t.qcow2.base (qcow2, read-only) |
| 268 | Cache mode: writeback, ignore flushes |
| 269 | (qemu) info block backing-file |
| 270 | |
| 271 | backing-file: TEST_DIR/t.qcow2.base (file, read-only) |
| 272 | Cache mode: writeback, ignore flushes |
| 273 | (qemu) quit |
| 274 | |
| 275 | 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 |
| 276 | QEMU X.Y.Z monitor - type 'help' for more information |
| 277 | (qemu) info block |
| 278 | 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) |
| 279 | Removable device: not locked, tray closed |
| 280 | Cache mode: writethrough |
| 281 | Backing file: TEST_DIR/t.qcow2.base (chain depth: 1) |
| 282 | (qemu) info block file |
| 283 | |
| 284 | file: TEST_DIR/t.qcow2 (file) |
| 285 | Cache mode: writeback |
| 286 | (qemu) info block backing |
| 287 | backing: TEST_DIR/t.qcow2.base (qcow2, read-only) |
| 288 | Cache mode: writeback, ignore flushes |
| 289 | (qemu) info block backing-file |
| 290 | |
| 291 | backing-file: TEST_DIR/t.qcow2.base (file, read-only) |
| 292 | Cache mode: writeback, ignore flushes |
| 293 | (qemu) quit |
| 294 | |
| 295 | 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 |
| 296 | QEMU X.Y.Z monitor - type 'help' for more information |
| 297 | (qemu) info block |
| 298 | 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) |
| 299 | Removable device: not locked, tray closed |
| 300 | Cache mode: writeback, ignore flushes |
| 301 | Backing file: TEST_DIR/t.qcow2.base (chain depth: 1) |
| 302 | (qemu) info block file |
| 303 | |
| 304 | file: TEST_DIR/t.qcow2 (file) |
| 305 | Cache mode: writeback, ignore flushes |
| 306 | (qemu) info block backing |
| 307 | backing: TEST_DIR/t.qcow2.base (qcow2, read-only) |
| 308 | Cache mode: writeback, ignore flushes |
| 309 | (qemu) info block backing-file |
| 310 | |
| 311 | backing-file: TEST_DIR/t.qcow2.base (file, read-only) |
| 312 | Cache mode: writeback, ignore flushes |
| 313 | (qemu) quit |
| 314 | |
| 315 | 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 |
| 316 | 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 |
| 317 | |
| 318 | |
| 319 | === Specifying the protocol layer === |
| 320 | |
| 321 | Testing: -drive file=TEST_DIR/t.qcow2,file.driver=file |
| 322 | QEMU X.Y.Z monitor - type 'help' for more information |
| 323 | (qemu) quit |
| 324 | |
| 325 | |
| 326 | === Leaving out required options === |
| 327 | |
| 328 | Testing: -drive driver=file |
| 329 | QEMU_PROG: -drive driver=file: The 'file' block driver requires a file name |
| 330 | |
| 331 | Testing: -drive driver=file,filename= |
| 332 | QEMU_PROG: -drive driver=file,filename=: The 'file' block driver requires a file name |
| 333 | |
| 334 | Testing: -drive driver=nbd |
| 335 | QEMU_PROG: -drive driver=nbd: NBD server address missing |
| 336 | |
| 337 | Testing: -drive driver=raw |
| 338 | QEMU_PROG: -drive driver=raw: A block device must be specified for "file" |
| 339 | |
| 340 | Testing: -drive file.driver=file |
| 341 | QEMU_PROG: -drive file.driver=file: The 'file' block driver requires a file name |
| 342 | |
| 343 | Testing: -drive file.driver=nbd |
| 344 | QEMU_PROG: -drive file.driver=nbd: NBD server address missing |
| 345 | |
| 346 | Testing: -drive file.driver=raw |
| 347 | QEMU_PROG: -drive file.driver=raw: A block device must be specified for "file" |
| 348 | |
| 349 | Testing: -drive foo=bar |
| 350 | QEMU_PROG: -drive foo=bar: Must specify either driver or file |
| 351 | |
| 352 | |
| 353 | === Specifying both an option and its legacy alias === |
| 354 | |
| 355 | Testing: -drive file=TEST_DIR/t.qcow2,iops=1234,throttling.iops-total=5678 |
| 356 | 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 |
| 357 | |
| 358 | Testing: -drive file=TEST_DIR/t.qcow2,iops_rd=1234,throttling.iops-read=5678 |
| 359 | 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 |
| 360 | |
| 361 | Testing: -drive file=TEST_DIR/t.qcow2,iops_wr=1234,throttling.iops-write=5678 |
| 362 | 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 |
| 363 | |
| 364 | Testing: -drive file=TEST_DIR/t.qcow2,bps=1234,throttling.bps-total=5678 |
| 365 | 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 |
| 366 | |
| 367 | Testing: -drive file=TEST_DIR/t.qcow2,bps_rd=1234,throttling.bps-read=5678 |
| 368 | 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 |
| 369 | |
| 370 | Testing: -drive file=TEST_DIR/t.qcow2,bps_wr=1234,throttling.bps-write=5678 |
| 371 | 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 |
| 372 | |
| 373 | Testing: -drive file=TEST_DIR/t.qcow2,iops_max=1234,throttling.iops-total-max=5678 |
| 374 | 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 |
| 375 | |
| 376 | Testing: -drive file=TEST_DIR/t.qcow2,iops_rd_max=1234,throttling.iops-read-max=5678 |
| 377 | 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 |
| 378 | |
| 379 | Testing: -drive file=TEST_DIR/t.qcow2,iops_wr_max=1234,throttling.iops-write-max=5678 |
| 380 | 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 |
| 381 | |
| 382 | Testing: -drive file=TEST_DIR/t.qcow2,bps_max=1234,throttling.bps-total-max=5678 |
| 383 | 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 |
| 384 | |
| 385 | Testing: -drive file=TEST_DIR/t.qcow2,bps_rd_max=1234,throttling.bps-read-max=5678 |
| 386 | 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 |
| 387 | |
| 388 | Testing: -drive file=TEST_DIR/t.qcow2,bps_wr_max=1234,throttling.bps-write-max=5678 |
| 389 | 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 |
| 390 | |
| 391 | Testing: -drive file=TEST_DIR/t.qcow2,iops_size=1234,throttling.iops-size=5678 |
| 392 | 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 |
| 393 | |
| 394 | Testing: -drive file=TEST_DIR/t.qcow2,readonly=on,read-only=off |
| 395 | 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 |
| 396 | |
| 397 | |
| 398 | === Catching negative/large throttling values === |
| 399 | |
| 400 | Testing: -drive file=TEST_DIR/t.qcow2,iops=-1 |
| 401 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,iops=-1: bps/iops/max values must be within [0, 1000000000000000] |
| 402 | |
| 403 | Testing: -drive file=TEST_DIR/t.qcow2,bps=-2 |
| 404 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps=-2: bps/iops/max values must be within [0, 1000000000000000] |
| 405 | |
| 406 | Testing: -drive file=TEST_DIR/t.qcow2,bps_rd=-3 |
| 407 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps_rd=-3: bps/iops/max values must be within [0, 1000000000000000] |
| 408 | |
| 409 | Testing: -drive file=TEST_DIR/t.qcow2,bps_rd_max=-3 |
| 410 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps_rd_max=-3: bps/iops/max values must be within [0, 1000000000000000] |
| 411 | |
| 412 | Testing: -drive file=TEST_DIR/t.qcow2,throttling.iops-total=-4 |
| 413 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,throttling.iops-total=-4: bps/iops/max values must be within [0, 1000000000000000] |
| 414 | |
| 415 | Testing: -drive file=TEST_DIR/t.qcow2,throttling.bps-total=-5 |
| 416 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,throttling.bps-total=-5: bps/iops/max values must be within [0, 1000000000000000] |
| 417 | |
| 418 | Testing: -drive file=TEST_DIR/t.qcow2,bps=0 |
| 419 | QEMU X.Y.Z monitor - type 'help' for more information |
| 420 | (qemu) quit |
| 421 | |
| 422 | Testing: -drive file=TEST_DIR/t.qcow2,bps=1 |
| 423 | QEMU X.Y.Z monitor - type 'help' for more information |
| 424 | (qemu) quit |
| 425 | |
| 426 | Testing: -drive file=TEST_DIR/t.qcow2,bps=1000000000000000 |
| 427 | QEMU X.Y.Z monitor - type 'help' for more information |
| 428 | (qemu) quit |
| 429 | |
| 430 | Testing: -drive file=TEST_DIR/t.qcow2,bps=1000000000000001 |
| 431 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps=1000000000000001: bps/iops/max values must be within [0, 1000000000000000] |
| 432 | |
| 433 | Testing: -drive file=TEST_DIR/t.qcow2,bps=9999999999999999 |
| 434 | QEMU_PROG: -drive file=TEST_DIR/t.qcow2,bps=9999999999999999: bps/iops/max values must be within [0, 1000000000000000] |
| 435 | |
| 436 | |
| 437 | === Parsing protocol from file name === |
| 438 | |
| 439 | Testing: -hda foo:bar |
| 440 | QEMU_PROG: -hda foo:bar: Unknown protocol 'foo' |
| 441 | |
| 442 | Testing: -drive file=foo:bar |
| 443 | QEMU_PROG: -drive file=foo:bar: Unknown protocol 'foo' |
| 444 | |
| 445 | Testing: -drive file.filename=foo:bar |
| 446 | QEMU_PROG: -drive file.filename=foo:bar: Could not open 'foo:bar': No such file or directory |
| 447 | |
| 448 | Testing: -hda file:TEST_DIR/t.qcow2 |
| 449 | QEMU X.Y.Z monitor - type 'help' for more information |
| 450 | (qemu) quit |
| 451 | |
| 452 | Testing: -drive file=file:TEST_DIR/t.qcow2 |
| 453 | QEMU X.Y.Z monitor - type 'help' for more information |
| 454 | (qemu) quit |
| 455 | |
| 456 | Testing: -drive file.filename=file:TEST_DIR/t.qcow2 |
| 457 | QEMU_PROG: -drive file.filename=file:TEST_DIR/t.qcow2: Could not open 'file:TEST_DIR/t.qcow2': No such file or directory |
| 458 | |
| 459 | |
| 460 | === Snapshot mode === |
| 461 | |
| 462 | wrote 4096/4096 bytes at offset 0 |
| 463 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 464 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=drive0 -snapshot |
| 465 | QEMU X.Y.Z monitor - type 'help' for more information |
| 466 | (qemu) qemu-io drive0 "write -P 0x22 0 4k" |
| 467 | wrote 4096/4096 bytes at offset 0 |
| 468 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 469 | (qemu) quit |
| 470 | |
| 471 | Testing: -drive file=TEST_DIR/t.qcow2,snapshot=on,if=none,id=drive0 |
| 472 | QEMU X.Y.Z monitor - type 'help' for more information |
| 473 | (qemu) qemu-io drive0 "write -P 0x22 0 4k" |
| 474 | wrote 4096/4096 bytes at offset 0 |
| 475 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 476 | (qemu) quit |
| 477 | |
| 478 | Testing: -drive file.filename=TEST_DIR/t.qcow2,driver=qcow2,snapshot=on,if=none,id=drive0 |
| 479 | QEMU X.Y.Z monitor - type 'help' for more information |
| 480 | (qemu) qemu-io drive0 "write -P 0x22 0 4k" |
| 481 | wrote 4096/4096 bytes at offset 0 |
| 482 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 483 | (qemu) quit |
| 484 | |
| 485 | Testing: -drive file.filename=TEST_DIR/t.qcow2,driver=qcow2,if=none,id=drive0 -snapshot |
| 486 | QEMU X.Y.Z monitor - type 'help' for more information |
| 487 | (qemu) qemu-io drive0 "write -P 0x22 0 4k" |
| 488 | wrote 4096/4096 bytes at offset 0 |
| 489 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 490 | (qemu) quit |
| 491 | |
| 492 | Testing: -drive file=file:TEST_DIR/t.qcow2,if=none,id=drive0 -snapshot |
| 493 | QEMU X.Y.Z monitor - type 'help' for more information |
| 494 | (qemu) qemu-io drive0 "write -P 0x22 0 4k" |
| 495 | wrote 4096/4096 bytes at offset 0 |
| 496 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 497 | (qemu) quit |
| 498 | |
| 499 | Testing: -drive file=file:TEST_DIR/t.qcow2,snapshot=on,if=none,id=drive0 |
| 500 | QEMU X.Y.Z monitor - type 'help' for more information |
| 501 | (qemu) qemu-io drive0 "write -P 0x22 0 4k" |
| 502 | wrote 4096/4096 bytes at offset 0 |
| 503 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 504 | (qemu) quit |
| 505 | |
| 506 | Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=drive0 -snapshot |
| 507 | QEMU X.Y.Z monitor - type 'help' for more information |
| 508 | (qemu) qemu-io drive0 "write -P 0x22 0 4k" |
| 509 | wrote 4096/4096 bytes at offset 0 |
| 510 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 511 | (qemu) quit |
| 512 | |
| 513 | Testing: -drive file=TEST_DIR/t.qcow2,snapshot=on,if=none,id=drive0 |
| 514 | QEMU X.Y.Z monitor - type 'help' for more information |
| 515 | (qemu) qemu-io drive0 "write -P 0x22 0 4k" |
| 516 | wrote 4096/4096 bytes at offset 0 |
| 517 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 518 | (qemu) quit |
| 519 | |
| 520 | read 4096/4096 bytes at offset 0 |
| 521 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 522 | Testing: -drive file=TEST_DIR/t.qcow2,snapshot=off,if=none,id=drive0 |
| 523 | QEMU X.Y.Z monitor - type 'help' for more information |
| 524 | (qemu) qemu-io drive0 "write -P 0x22 0 4k" |
| 525 | wrote 4096/4096 bytes at offset 0 |
| 526 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 527 | (qemu) quit |
| 528 | |
| 529 | read 4096/4096 bytes at offset 0 |
| 530 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 531 | Testing: -drive file=TEST_DIR/t.qcow2,snapshot=on,if=none,id=drive0 |
| 532 | QEMU X.Y.Z monitor - type 'help' for more information |
| 533 | (qemu) qemu-io drive0 "write -P 0x33 0 4k" |
| 534 | wrote 4096/4096 bytes at offset 0 |
| 535 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 536 | (qemu) commit drive0 |
| 537 | (qemu) quit |
| 538 | |
| 539 | read 4096/4096 bytes at offset 0 |
| 540 | 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
| 541 | Testing: -drive driver=null-co,snapshot=on |
| 542 | QEMU_PROG: -drive driver=null-co,snapshot=on: Could not open temporary file SNAPSHOT_PATH: No such file or directory |
| 543 | |
| 544 | Testing: -drive file=TEST_DIR/t.qcow2,snapshot=on,read-only=on,if=none,id=drive0 |
| 545 | QEMU X.Y.Z monitor - type 'help' for more information |
| 546 | (qemu) info block |
| 547 | drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}}, "driver": "qcow2", "file": {"driver": "file", "filename": SNAPSHOT_PATH}} (qcow2, read-only) |
| 548 | Removable device: not locked, tray closed |
| 549 | Cache mode: writeback, ignore flushes |
| 550 | Backing file: TEST_DIR/t.qcow2 (chain depth: 1) |
| 551 | (qemu) quit |
| 552 | |
| 553 | *** done |