QA output created by 153
== readonly=off,force-share=on should be rejected ==
QEMU_PROG: -drive if=none,file=null-co://,readonly=off,force-share=on: force-share=on can only be used with read-only images

== Creating base image ==
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=33554432

== Creating test image ==
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=33554432 backing_file=TEST_DIR/t.IMGFMT.base

== Launching QEMU, opts: '' ==

== Launching another QEMU, opts: '' ==
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,if=none,: Failed to get "write" lock
Is another process using the image?

== Launching another QEMU, opts: 'read-only=on' ==
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,if=none,read-only=on: Failed to get shared "write" lock
Is another process using the image?

== Launching another QEMU, opts: 'read-only=on,force-share=on' ==

== Running utility commands  ==

_qemu_io_wrapper -c read 0 512 TEST_DIR/t.qcow2
can't open device TEST_DIR/t.qcow2: Failed to get "write" lock
Is another process using the image?

_qemu_io_wrapper -r -c read 0 512 TEST_DIR/t.qcow2
can't open device TEST_DIR/t.qcow2: Failed to get shared "write" lock
Is another process using the image?

_qemu_io_wrapper -c open  TEST_DIR/t.qcow2 -c read 0 512
can't open device TEST_DIR/t.qcow2: Failed to get "write" lock
Is another process using the image?
no file open, try 'help open'

_qemu_io_wrapper -c open -r  TEST_DIR/t.qcow2 -c read 0 512
can't open device TEST_DIR/t.qcow2: Failed to get shared "write" lock
Is another process using the image?
no file open, try 'help open'

_qemu_img_wrapper info TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock
Is another process using the image?

_qemu_img_wrapper check TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock
Is another process using the image?

_qemu_img_wrapper compare TEST_DIR/t.qcow2 TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock
Is another process using the image?

_qemu_img_wrapper map TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock
Is another process using the image?

_qemu_img_wrapper amend -o  TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper commit TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper resize TEST_DIR/t.qcow2 32M
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper rebase TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper snapshot -l TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock
Is another process using the image?

_qemu_img_wrapper convert TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.convert
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock
Is another process using the image?

_qemu_img_wrapper dd if=TEST_DIR/t.qcow2 of=TEST_DIR/t.qcow2.convert bs=512 count=1
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock
Is another process using the image?

_qemu_img_wrapper bench -c 1 TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock
Is another process using the image?

_qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

== Running utility commands -U ==

_qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2
can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images

_qemu_io_wrapper -U -r -c read 0 512 TEST_DIR/t.qcow2

_qemu_io_wrapper -c open -U TEST_DIR/t.qcow2 -c read 0 512
can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images
no file open, try 'help open'

_qemu_io_wrapper -c open -r -U TEST_DIR/t.qcow2 -c read 0 512

_qemu_img_wrapper info -U TEST_DIR/t.qcow2

_qemu_img_wrapper check -U TEST_DIR/t.qcow2

_qemu_img_wrapper compare -U TEST_DIR/t.qcow2 TEST_DIR/t.qcow2

_qemu_img_wrapper map -U TEST_DIR/t.qcow2

_qemu_img_wrapper amend -o  -U TEST_DIR/t.qcow2
qemu-img: unrecognized option '-U'
Try 'qemu-img --help' for more information

_qemu_img_wrapper commit -U TEST_DIR/t.qcow2
qemu-img: unrecognized option '-U'
Try 'qemu-img --help' for more information

_qemu_img_wrapper resize -U TEST_DIR/t.qcow2 32M
qemu-img: unrecognized option '-U'
Try 'qemu-img --help' for more information

_qemu_img_wrapper rebase -U TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper snapshot -l -U TEST_DIR/t.qcow2

_qemu_img_wrapper convert -U TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.convert

_qemu_img_wrapper dd -U if=TEST_DIR/t.qcow2 of=TEST_DIR/t.qcow2.convert bs=512 count=1

_qemu_img_wrapper bench -U -c 1 TEST_DIR/t.qcow2

_qemu_img_wrapper bench -U -w -c 1 TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': force-share=on can only be used with read-only images

Round done

== Creating base image ==
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=33554432

== Creating test image ==
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=33554432 backing_file=TEST_DIR/t.IMGFMT.base

== Launching QEMU, opts: 'read-only=on' ==

== Launching another QEMU, opts: '' ==
QEMU_PROG: -drive file=TEST_DIR/t.qcow2,if=none,: Failed to get "write" lock
Is another process using the image?

== Launching another QEMU, opts: 'read-only=on' ==

== Launching another QEMU, opts: 'read-only=on,force-share=on' ==

== Running utility commands  ==

_qemu_io_wrapper -c read 0 512 TEST_DIR/t.qcow2
can't open device TEST_DIR/t.qcow2: Failed to get "write" lock
Is another process using the image?

_qemu_io_wrapper -r -c read 0 512 TEST_DIR/t.qcow2

_qemu_io_wrapper -c open  TEST_DIR/t.qcow2 -c read 0 512
can't open device TEST_DIR/t.qcow2: Failed to get "write" lock
Is another process using the image?
no file open, try 'help open'

_qemu_io_wrapper -c open -r  TEST_DIR/t.qcow2 -c read 0 512

_qemu_img_wrapper info TEST_DIR/t.qcow2

_qemu_img_wrapper check TEST_DIR/t.qcow2

_qemu_img_wrapper compare TEST_DIR/t.qcow2 TEST_DIR/t.qcow2

_qemu_img_wrapper map TEST_DIR/t.qcow2

_qemu_img_wrapper amend -o  TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper commit TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper resize TEST_DIR/t.qcow2 32M
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper rebase TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper snapshot -l TEST_DIR/t.qcow2

_qemu_img_wrapper convert TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.convert

_qemu_img_wrapper dd if=TEST_DIR/t.qcow2 of=TEST_DIR/t.qcow2.convert bs=512 count=1

_qemu_img_wrapper bench -c 1 TEST_DIR/t.qcow2

_qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

== Running utility commands -U ==

_qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2
can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images

_qemu_io_wrapper -U -r -c read 0 512 TEST_DIR/t.qcow2

_qemu_io_wrapper -c open -U TEST_DIR/t.qcow2 -c read 0 512
can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images
no file open, try 'help open'

_qemu_io_wrapper -c open -r -U TEST_DIR/t.qcow2 -c read 0 512

_qemu_img_wrapper info -U TEST_DIR/t.qcow2

_qemu_img_wrapper check -U TEST_DIR/t.qcow2

_qemu_img_wrapper compare -U TEST_DIR/t.qcow2 TEST_DIR/t.qcow2

_qemu_img_wrapper map -U TEST_DIR/t.qcow2

_qemu_img_wrapper amend -o  -U TEST_DIR/t.qcow2
qemu-img: unrecognized option '-U'
Try 'qemu-img --help' for more information

_qemu_img_wrapper commit -U TEST_DIR/t.qcow2
qemu-img: unrecognized option '-U'
Try 'qemu-img --help' for more information

_qemu_img_wrapper resize -U TEST_DIR/t.qcow2 32M
qemu-img: unrecognized option '-U'
Try 'qemu-img --help' for more information

_qemu_img_wrapper rebase -U TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
Is another process using the image?

_qemu_img_wrapper snapshot -l -U TEST_DIR/t.qcow2

_qemu_img_wrapper convert -U TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.convert

_qemu_img_wrapper dd -U if=TEST_DIR/t.qcow2 of=TEST_DIR/t.qcow2.convert bs=512 count=1

_qemu_img_wrapper bench -U -c 1 TEST_DIR/t.qcow2

_qemu_img_wrapper bench -U -w -c 1 TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': force-share=on can only be used with read-only images

Round done

== Creating base image ==
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=33554432

== Creating test image ==
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=33554432 backing_file=TEST_DIR/t.IMGFMT.base

== Launching QEMU, opts: 'read-only=on,force-share=on' ==

== Launching another QEMU, opts: '' ==

== Launching another QEMU, opts: 'read-only=on' ==

== Launching another QEMU, opts: 'read-only=on,force-share=on' ==

== Running utility commands  ==

_qemu_io_wrapper -c read 0 512 TEST_DIR/t.qcow2

_qemu_io_wrapper -r -c read 0 512 TEST_DIR/t.qcow2

_qemu_io_wrapper -c open  TEST_DIR/t.qcow2 -c read 0 512

_qemu_io_wrapper -c open -r  TEST_DIR/t.qcow2 -c read 0 512

_qemu_img_wrapper info TEST_DIR/t.qcow2

_qemu_img_wrapper check TEST_DIR/t.qcow2

_qemu_img_wrapper compare TEST_DIR/t.qcow2 TEST_DIR/t.qcow2

_qemu_img_wrapper map TEST_DIR/t.qcow2

_qemu_img_wrapper amend -o  TEST_DIR/t.qcow2

_qemu_img_wrapper commit TEST_DIR/t.qcow2

_qemu_img_wrapper resize TEST_DIR/t.qcow2 32M

_qemu_img_wrapper rebase TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base

_qemu_img_wrapper snapshot -l TEST_DIR/t.qcow2

_qemu_img_wrapper convert TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.convert

_qemu_img_wrapper dd if=TEST_DIR/t.qcow2 of=TEST_DIR/t.qcow2.convert bs=512 count=1

_qemu_img_wrapper bench -c 1 TEST_DIR/t.qcow2

_qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2

== Running utility commands -U ==

_qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2
can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images

_qemu_io_wrapper -U -r -c read 0 512 TEST_DIR/t.qcow2

_qemu_io_wrapper -c open -U TEST_DIR/t.qcow2 -c read 0 512
can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images
no file open, try 'help open'

_qemu_io_wrapper -c open -r -U TEST_DIR/t.qcow2 -c read 0 512

_qemu_img_wrapper info -U TEST_DIR/t.qcow2

_qemu_img_wrapper check -U TEST_DIR/t.qcow2

_qemu_img_wrapper compare -U TEST_DIR/t.qcow2 TEST_DIR/t.qcow2

_qemu_img_wrapper map -U TEST_DIR/t.qcow2

_qemu_img_wrapper amend -o  -U TEST_DIR/t.qcow2
qemu-img: unrecognized option '-U'
Try 'qemu-img --help' for more information

_qemu_img_wrapper commit -U TEST_DIR/t.qcow2
qemu-img: unrecognized option '-U'
Try 'qemu-img --help' for more information

_qemu_img_wrapper resize -U TEST_DIR/t.qcow2 32M
qemu-img: unrecognized option '-U'
Try 'qemu-img --help' for more information

_qemu_img_wrapper rebase -U TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base

_qemu_img_wrapper snapshot -l -U TEST_DIR/t.qcow2

_qemu_img_wrapper convert -U TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.convert

_qemu_img_wrapper dd -U if=TEST_DIR/t.qcow2 of=TEST_DIR/t.qcow2.convert bs=512 count=1

_qemu_img_wrapper bench -U -c 1 TEST_DIR/t.qcow2

_qemu_img_wrapper bench -U -w -c 1 TEST_DIR/t.qcow2
qemu-img: Could not open 'TEST_DIR/t.qcow2': force-share=on can only be used with read-only images

Round done
== Creating TEST_DIR/t.qcow2.[abc] ==
Formatting 'TEST_DIR/t.IMGFMT.a', fmt=IMGFMT size=33554432 backing_file=TEST_DIR/t.IMGFMT
Formatting 'TEST_DIR/t.IMGFMT.b', fmt=IMGFMT size=33554432 backing_file=TEST_DIR/t.IMGFMT
Formatting 'TEST_DIR/t.IMGFMT.c', fmt=IMGFMT size=33554432 backing_file=TEST_DIR/t.IMGFMT.b

== Two devices sharing the same file in backing chain ==

== Backing image also as an active device ==
QEMU_PROG: -drive if=none,file=TEST_DIR/t.qcow2: Failed to get "write" lock
Is another process using the image?

== Backing image also as an active device (ro) ==

== Symbolic link ==
QEMU_PROG: -drive if=none,file=TEST_DIR/t.qcow2: Failed to get "write" lock
Is another process using the image?

== Active commit to intermediate layer should work when base in use ==
{"return": {}}

_qemu_img_wrapper commit -b TEST_DIR/t.qcow2.b TEST_DIR/t.qcow2.c
{"return": {}}
Adding drive

_qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512
can't open device TEST_DIR/t.qcow2: Failed to get "write" lock
Is another process using the image?
Creating overlay with qemu-img when the guest is running should be allowed

_qemu_img_wrapper create -f qcow2 -b TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.overlay
== Closing an image should unlock it ==

_qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512
Adding two and closing one

_qemu_img_wrapper info TEST_DIR/t.qcow2

_qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512
can't open device TEST_DIR/t.qcow2: Failed to get "write" lock
Is another process using the image?
Closing the other

_qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512
*** done
