|
|
26ba25 |
From 3dba07a26692093927c017046a8ea10f94892e67 Mon Sep 17 00:00:00 2001
|
|
|
26ba25 |
From: Max Reitz <mreitz@redhat.com>
|
|
|
26ba25 |
Date: Mon, 18 Jun 2018 14:53:37 +0200
|
|
|
26ba25 |
Subject: [PATCH 156/268] iotests: Add creation test to 153
|
|
|
26ba25 |
|
|
|
26ba25 |
RH-Author: Max Reitz <mreitz@redhat.com>
|
|
|
26ba25 |
Message-id: <20180618145337.633-4-mreitz@redhat.com>
|
|
|
26ba25 |
Patchwork-id: 80752
|
|
|
26ba25 |
O-Subject: [RHV-7.6 qemu-kvm-rhev PATCH 3/3] iotests: Add creation test to 153
|
|
|
26ba25 |
Bugzilla: 1519144
|
|
|
26ba25 |
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
26ba25 |
RH-Acked-by: Fam Zheng <famz@redhat.com>
|
|
|
26ba25 |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
26ba25 |
|
|
|
26ba25 |
This patch adds a test case to 153 which tries to overwrite an image
|
|
|
26ba25 |
(using qemu-img create) while it is in use. Without the original user
|
|
|
26ba25 |
explicitly sharing the necessary permissions (writing and truncation),
|
|
|
26ba25 |
this should not be allowed.
|
|
|
26ba25 |
|
|
|
26ba25 |
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
|
26ba25 |
Reviewed-by: Fam Zheng <famz@redhat.com>
|
|
|
26ba25 |
Message-id: 20180509215336.31304-4-mreitz@redhat.com
|
|
|
26ba25 |
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
|
26ba25 |
(cherry picked from commit f45b638f9f967cdbea4e24704bd16a858ddcde03)
|
|
|
26ba25 |
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
|
26ba25 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
26ba25 |
---
|
|
|
26ba25 |
tests/qemu-iotests/153 | 18 ++++++++++++++++++
|
|
|
26ba25 |
tests/qemu-iotests/153.out | 13 +++++++++++++
|
|
|
26ba25 |
2 files changed, 31 insertions(+)
|
|
|
26ba25 |
|
|
|
26ba25 |
diff --git a/tests/qemu-iotests/153 b/tests/qemu-iotests/153
|
|
|
26ba25 |
index ec508c7..673813c 100755
|
|
|
26ba25 |
--- a/tests/qemu-iotests/153
|
|
|
26ba25 |
+++ b/tests/qemu-iotests/153
|
|
|
26ba25 |
@@ -137,6 +137,24 @@ for opts1 in "" "read-only=on" "read-only=on,force-share=on"; do
|
|
|
26ba25 |
_run_cmd $QEMU_IMG dd $L if="${TEST_IMG}" of="${TEST_IMG}.convert" bs=512 count=1
|
|
|
26ba25 |
_run_cmd $QEMU_IMG bench $L -c 1 "${TEST_IMG}"
|
|
|
26ba25 |
_run_cmd $QEMU_IMG bench $L -w -c 1 "${TEST_IMG}"
|
|
|
26ba25 |
+
|
|
|
26ba25 |
+ # qemu-img create does not support -U
|
|
|
26ba25 |
+ if [ -z "$L" ]; then
|
|
|
26ba25 |
+ _run_cmd $QEMU_IMG create -f $IMGFMT "${TEST_IMG}" \
|
|
|
26ba25 |
+ -b ${TEST_IMG}.base
|
|
|
26ba25 |
+ # Read the file format. It used to be the case that
|
|
|
26ba25 |
+ # file-posix simply truncated the file, but the qcow2
|
|
|
26ba25 |
+ # driver then failed to format it because it was unable
|
|
|
26ba25 |
+ # to acquire the necessary WRITE permission. However, the
|
|
|
26ba25 |
+ # truncation was already wrong, and the whole process
|
|
|
26ba25 |
+ # resulted in the file being completely empty and thus its
|
|
|
26ba25 |
+ # format would be detected to be raw.
|
|
|
26ba25 |
+ # So we read it here to see that creation either completed
|
|
|
26ba25 |
+ # successfully (thus the format is qcow2) or it aborted
|
|
|
26ba25 |
+ # before the file was changed at all (thus the format stays
|
|
|
26ba25 |
+ # qcow2).
|
|
|
26ba25 |
+ _img_info -U | grep 'file format'
|
|
|
26ba25 |
+ fi
|
|
|
26ba25 |
done
|
|
|
26ba25 |
_send_qemu_cmd $h "{ 'execute': 'quit', }" ""
|
|
|
26ba25 |
echo
|
|
|
26ba25 |
diff --git a/tests/qemu-iotests/153.out b/tests/qemu-iotests/153.out
|
|
|
26ba25 |
index 2510762..3492ba7 100644
|
|
|
26ba25 |
--- a/tests/qemu-iotests/153.out
|
|
|
26ba25 |
+++ b/tests/qemu-iotests/153.out
|
|
|
26ba25 |
@@ -92,6 +92,11 @@ _qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2
|
|
|
26ba25 |
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
|
|
|
26ba25 |
Is another process using the image?
|
|
|
26ba25 |
|
|
|
26ba25 |
+_qemu_img_wrapper create -f qcow2 TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
|
|
|
26ba25 |
+qemu-img: TEST_DIR/t.qcow2: Failed to get "write" lock
|
|
|
26ba25 |
+Is another process using the image?
|
|
|
26ba25 |
+file format: IMGFMT
|
|
|
26ba25 |
+
|
|
|
26ba25 |
== Running utility commands -U ==
|
|
|
26ba25 |
|
|
|
26ba25 |
_qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2
|
|
|
26ba25 |
@@ -209,6 +214,11 @@ _qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2
|
|
|
26ba25 |
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
|
|
|
26ba25 |
Is another process using the image?
|
|
|
26ba25 |
|
|
|
26ba25 |
+_qemu_img_wrapper create -f qcow2 TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
|
|
|
26ba25 |
+qemu-img: TEST_DIR/t.qcow2: Failed to get "write" lock
|
|
|
26ba25 |
+Is another process using the image?
|
|
|
26ba25 |
+file format: IMGFMT
|
|
|
26ba25 |
+
|
|
|
26ba25 |
== Running utility commands -U ==
|
|
|
26ba25 |
|
|
|
26ba25 |
_qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2
|
|
|
26ba25 |
@@ -309,6 +319,9 @@ _qemu_img_wrapper bench -c 1 TEST_DIR/t.qcow2
|
|
|
26ba25 |
|
|
|
26ba25 |
_qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2
|
|
|
26ba25 |
|
|
|
26ba25 |
+_qemu_img_wrapper create -f qcow2 TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
|
|
|
26ba25 |
+file format: IMGFMT
|
|
|
26ba25 |
+
|
|
|
26ba25 |
== Running utility commands -U ==
|
|
|
26ba25 |
|
|
|
26ba25 |
_qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2
|
|
|
26ba25 |
--
|
|
|
26ba25 |
1.8.3.1
|
|
|
26ba25 |
|