Message ID | 20180313115814.23774-3-famz@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2018-03-13 12:58, Fam Zheng wrote: > Signed-off-by: Fam Zheng <famz@redhat.com> > --- > tests/qemu-iotests/153 | 8 ++++++++ > tests/qemu-iotests/153.out | 4 ++++ > 2 files changed, 12 insertions(+) > > diff --git a/tests/qemu-iotests/153 b/tests/qemu-iotests/153 > index adfd02695b..a7875e6899 100755 > --- a/tests/qemu-iotests/153 > +++ b/tests/qemu-iotests/153 > @@ -178,6 +178,14 @@ rm -f "${TEST_IMG}.lnk" &>/dev/null > ln -s ${TEST_IMG} "${TEST_IMG}.lnk" || echo "Failed to create link" > _run_qemu_with_images "${TEST_IMG}.lnk" "${TEST_IMG}" > > +echo > +echo "== Active commit to intermediate layer should work when base in use ==" > +_launch_qemu -drive format=$IMGFMT,file="${TEST_IMG}.a",id=drive0 \ > + -device virtio-blk,drive=drive0 > +_run_cmd $QEMU_IMG commit -b "${TEST_IMG}.b" "${TEST_IMG}.c" > + > +_cleanup_qemu > + > _launch_qemu > > _send_qemu_cmd $QEMU_HANDLE \ > diff --git a/tests/qemu-iotests/153.out b/tests/qemu-iotests/153.out > index 34309cfb20..28f8250dd2 100644 > --- a/tests/qemu-iotests/153.out > +++ b/tests/qemu-iotests/153.out > @@ -372,6 +372,10 @@ Is another process using the image? > == 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 == > + > +_qemu_img_wrapper commit -b TEST_DIR/t.qcow2.b TEST_DIR/t.qcow2.c > {"return": {}} > Adding drive Hmmm... I don't know, but this just passes on my machine without your previous patch. [Two minutes later] Now I do know why, qemu simply isn't properly started at the time $QEMU_IMG commit runs (see also 6bfc907deed83af7). Therefore, no error here. So if I just add a _send_qemu_cmd $QEMU_HANDLE \ "{ 'execute': 'qmp_capabilities' }" \ 'return' after the _launch_qemu, this is what I get: QEMU_PROG: -device virtio-blk,drive=drive0: Drive 'drive0' is already in use because it has been automatically connected to another device (did you need 'if=none' in the drive options?) With if=none (or just -blockdev instead of -drive), I get the error message I was hoping for. Max
diff --git a/tests/qemu-iotests/153 b/tests/qemu-iotests/153 index adfd02695b..a7875e6899 100755 --- a/tests/qemu-iotests/153 +++ b/tests/qemu-iotests/153 @@ -178,6 +178,14 @@ rm -f "${TEST_IMG}.lnk" &>/dev/null ln -s ${TEST_IMG} "${TEST_IMG}.lnk" || echo "Failed to create link" _run_qemu_with_images "${TEST_IMG}.lnk" "${TEST_IMG}" +echo +echo "== Active commit to intermediate layer should work when base in use ==" +_launch_qemu -drive format=$IMGFMT,file="${TEST_IMG}.a",id=drive0 \ + -device virtio-blk,drive=drive0 +_run_cmd $QEMU_IMG commit -b "${TEST_IMG}.b" "${TEST_IMG}.c" + +_cleanup_qemu + _launch_qemu _send_qemu_cmd $QEMU_HANDLE \ diff --git a/tests/qemu-iotests/153.out b/tests/qemu-iotests/153.out index 34309cfb20..28f8250dd2 100644 --- a/tests/qemu-iotests/153.out +++ b/tests/qemu-iotests/153.out @@ -372,6 +372,10 @@ Is another process using the image? == 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 == + +_qemu_img_wrapper commit -b TEST_DIR/t.qcow2.b TEST_DIR/t.qcow2.c {"return": {}} Adding drive
Signed-off-by: Fam Zheng <famz@redhat.com> --- tests/qemu-iotests/153 | 8 ++++++++ tests/qemu-iotests/153.out | 4 ++++ 2 files changed, 12 insertions(+)