cryptospore / rpms / qemu-kvm

Forked from rpms/qemu-kvm 2 years ago
Clone

Blame SOURCES/kvm-qemu-iotests-Adjustments-due-to-error-propagation.patch

9ae3a8
From aaf2d00ea8cd6479c5dd15773660e0699472af1c Mon Sep 17 00:00:00 2001
9ae3a8
From: Max Reitz <mreitz@redhat.com>
9ae3a8
Date: Thu, 7 Nov 2013 12:37:40 +0100
9ae3a8
Subject: [PATCH 22/87] qemu-iotests: Adjustments due to error propagation
9ae3a8
9ae3a8
RH-Author: Max Reitz <mreitz@redhat.com>
9ae3a8
Message-id: <1383604354-12743-25-git-send-email-mreitz@redhat.com>
9ae3a8
Patchwork-id: 55324
9ae3a8
O-Subject: [RHEL-7.0 qemu-kvm PATCH 24/43] qemu-iotests: Adjustments due to error propagation
9ae3a8
Bugzilla: 1026524
9ae3a8
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
9ae3a8
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
9ae3a8
RH-Acked-by: Fam Zheng <famz@redhat.com>
9ae3a8
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
9ae3a8
9ae3a8
BZ: 1026524
9ae3a8
9ae3a8
When opening/creating images, propagating errors instead of immediately
9ae3a8
emitting them on occurrence results in errors generally being printed on
9ae3a8
a single line rather than being split up into multiple ones. This in
9ae3a8
turn requires adjustments to some test results.
9ae3a8
9ae3a8
Also, test 060 used a sed to filter out the test image directory and
9ae3a8
format by removing everything from the affected line after a certain
9ae3a8
keyword; this now also removes the error message itself, which can be
9ae3a8
fixed by using _filter_testdir and _filter_imgfmt.
9ae3a8
9ae3a8
Finally, _make_test_img in common.rc did not filter out the test image
9ae3a8
directory etc. from stderr. This has been fixed through a redirection of
9ae3a8
stderr to stdout (which is already done in _check_test_img and
9ae3a8
_img_info).
9ae3a8
9ae3a8
Signed-off-by: Max Reitz <mreitz@redhat.com>
9ae3a8
(cherry picked from commit 2c78857bf6a9b5d06e17533b8f40fee14e087987)
9ae3a8
9ae3a8
Signed-off-by: Max Reitz <mreitz@redhat.com>
9ae3a8
9ae3a8
Conflicts:
9ae3a8
	tests/qemu-iotests/054.out
9ae3a8
	tests/qemu-iotests/060
9ae3a8
	tests/qemu-iotests/060.out
9ae3a8
9ae3a8
Conflicts because these tests do not exist downstream.
9ae3a8
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
---
9ae3a8
 tests/qemu-iotests/049.out   |   18 +++++++-----------
9ae3a8
 tests/qemu-iotests/051.out   |   35 ++++++++++++-----------------------
9ae3a8
 tests/qemu-iotests/common.rc |    2 +-
9ae3a8
 3 files changed, 20 insertions(+), 35 deletions(-)
9ae3a8
9ae3a8
diff --git a/tests/qemu-iotests/049.out b/tests/qemu-iotests/049.out
9ae3a8
index 72db13f..96e83a4 100644
9ae3a8
--- a/tests/qemu-iotests/049.out
9ae3a8
+++ b/tests/qemu-iotests/049.out
9ae3a8
@@ -96,7 +96,7 @@ qemu-img: Image size must be less than 8 EiB!
9ae3a8
 
9ae3a8
 qemu-img create -f qcow2 -o size=-1024 TEST_DIR/t.qcow2
9ae3a8
 qemu-img: qcow2 doesn't support shrinking images yet
9ae3a8
-qemu-img: Formatting or formatting option not supported for file format 'qcow2'
9ae3a8
+qemu-img: TEST_DIR/t.qcow2: Could not resize image: Operation not supported
9ae3a8
 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=-1024 encryption=off cluster_size=65536 lazy_refcounts=off 
9ae3a8
 
9ae3a8
 qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- -1k
9ae3a8
@@ -104,7 +104,7 @@ qemu-img: Image size must be less than 8 EiB!
9ae3a8
 
9ae3a8
 qemu-img create -f qcow2 -o size=-1k TEST_DIR/t.qcow2
9ae3a8
 qemu-img: qcow2 doesn't support shrinking images yet
9ae3a8
-qemu-img: Formatting or formatting option not supported for file format 'qcow2'
9ae3a8
+qemu-img: TEST_DIR/t.qcow2: Could not resize image: Operation not supported
9ae3a8
 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=-1024 encryption=off cluster_size=65536 lazy_refcounts=off 
9ae3a8
 
9ae3a8
 qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- 1kilobyte
9ae3a8
@@ -120,7 +120,7 @@ qemu-img: kilobytes, megabytes, gigabytes and terabytes.
9ae3a8
 
9ae3a8
 qemu-img create -f qcow2 -o size=foobar TEST_DIR/t.qcow2
9ae3a8
 qemu-img: Parameter 'size' expects a size
9ae3a8
-qemu-img: Invalid options for file format 'qcow2'.
9ae3a8
+qemu-img: TEST_DIR/t.qcow2: Invalid options for file format 'qcow2'.
9ae3a8
 
9ae3a8
 == Check correct interpretation of suffixes for cluster size ==
9ae3a8
 
9ae3a8
@@ -163,13 +163,11 @@ qemu-img create -f qcow2 -o compat=1.1 TEST_DIR/t.qcow2 64M
9ae3a8
 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat='1.1' encryption=off cluster_size=65536 lazy_refcounts=off 
9ae3a8
 
9ae3a8
 qemu-img create -f qcow2 -o compat=0.42 TEST_DIR/t.qcow2 64M
9ae3a8
-Invalid compatibility level: '0.42'
9ae3a8
-qemu-img: TEST_DIR/t.qcow2: error while creating qcow2: Invalid argument
9ae3a8
+qemu-img: TEST_DIR/t.qcow2: Invalid compatibility level: '0.42'
9ae3a8
 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat='0.42' encryption=off cluster_size=65536 lazy_refcounts=off 
9ae3a8
 
9ae3a8
 qemu-img create -f qcow2 -o compat=foobar TEST_DIR/t.qcow2 64M
9ae3a8
-Invalid compatibility level: 'foobar'
9ae3a8
-qemu-img: TEST_DIR/t.qcow2: error while creating qcow2: Invalid argument
9ae3a8
+qemu-img: TEST_DIR/t.qcow2: Invalid compatibility level: 'foobar'
9ae3a8
 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat='foobar' encryption=off cluster_size=65536 lazy_refcounts=off 
9ae3a8
 
9ae3a8
 == Check preallocation option ==
9ae3a8
@@ -181,8 +179,7 @@ qemu-img create -f qcow2 -o preallocation=metadata TEST_DIR/t.qcow2 64M
9ae3a8
 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 encryption=off cluster_size=65536 preallocation='metadata' lazy_refcounts=off 
9ae3a8
 
9ae3a8
 qemu-img create -f qcow2 -o preallocation=1234 TEST_DIR/t.qcow2 64M
9ae3a8
-Invalid preallocation mode: '1234'
9ae3a8
-qemu-img: TEST_DIR/t.qcow2: error while creating qcow2: Invalid argument
9ae3a8
+qemu-img: TEST_DIR/t.qcow2: Invalid preallocation mode: '1234'
9ae3a8
 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 encryption=off cluster_size=65536 preallocation='1234' lazy_refcounts=off 
9ae3a8
 
9ae3a8
 == Check encryption option ==
9ae3a8
@@ -205,8 +202,7 @@ qemu-img create -f qcow2 -o compat=0.10,lazy_refcounts=off TEST_DIR/t.qcow2 64M
9ae3a8
 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat='0.10' encryption=off cluster_size=65536 lazy_refcounts=off 
9ae3a8
 
9ae3a8
 qemu-img create -f qcow2 -o compat=0.10,lazy_refcounts=on TEST_DIR/t.qcow2 64M
9ae3a8
-Lazy refcounts only supported with compatibility level 1.1 and above (use compat=1.1 or greater)
9ae3a8
-qemu-img: TEST_DIR/t.qcow2: error while creating qcow2: Invalid argument
9ae3a8
+qemu-img: TEST_DIR/t.qcow2: Lazy refcounts only supported with compatibility level 1.1 and above (use compat=1.1 or greater)
9ae3a8
 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=67108864 compat='0.10' encryption=off cluster_size=65536 lazy_refcounts=on 
9ae3a8
 
9ae3a8
 *** done
9ae3a8
diff --git a/tests/qemu-iotests/051.out b/tests/qemu-iotests/051.out
9ae3a8
index e3cf244..fe0b347 100644
9ae3a8
--- a/tests/qemu-iotests/051.out
9ae3a8
+++ b/tests/qemu-iotests/051.out
9ae3a8
@@ -4,20 +4,16 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
9ae3a8
 === Unknown option ===
9ae3a8
 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt'
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=: could not open disk image TEST_DIR/t.qcow2: Invalid argument
9ae3a8
+QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=: could not open disk image TEST_DIR/t.qcow2: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt'
9ae3a8
 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt'
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on: could not open disk image TEST_DIR/t.qcow2: Invalid argument
9ae3a8
+QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on: could not open disk image TEST_DIR/t.qcow2: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt'
9ae3a8
 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt'
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234: could not open disk image TEST_DIR/t.qcow2: Invalid argument
9ae3a8
+QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234: could not open disk image TEST_DIR/t.qcow2: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt'
9ae3a8
 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt'
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo: could not open disk image TEST_DIR/t.qcow2: Invalid argument
9ae3a8
+QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo: could not open disk image TEST_DIR/t.qcow2: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt'
9ae3a8
 
9ae3a8
 
9ae3a8
 === Enable and disable lazy refcounting on the command line, plus some invalid values ===
9ae3a8
@@ -31,24 +27,20 @@ QEMU X.Y.Z monitor - type 'help' for more information
9ae3a8
 (qemu) q?[K?[Dqu?[K?[D?[Dqui?[K?[D?[D?[Dquit?[K
9ae3a8
 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=: Parameter 'lazy-refcounts' expects 'on' or 'off'
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=: could not open disk image TEST_DIR/t.qcow2: Invalid argument
9ae3a8
+QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=: could not open disk image TEST_DIR/t.qcow2: Parameter 'lazy-refcounts' expects 'on' or 'off'
9ae3a8
 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42: Parameter 'lazy-refcounts' expects 'on' or 'off'
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42: could not open disk image TEST_DIR/t.qcow2: Invalid argument
9ae3a8
+QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42: could not open disk image TEST_DIR/t.qcow2: Parameter 'lazy-refcounts' expects 'on' or 'off'
9ae3a8
 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo: Parameter 'lazy-refcounts' expects 'on' or 'off'
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo: could not open disk image TEST_DIR/t.qcow2: Invalid argument
9ae3a8
+QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo: could not open disk image TEST_DIR/t.qcow2: Parameter 'lazy-refcounts' expects 'on' or 'off'
9ae3a8
 
9ae3a8
 
9ae3a8
 === With version 2 images enabling lazy refcounts must fail ===
9ae3a8
 
9ae3a8
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on
9ae3a8
-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
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on: could not open disk image TEST_DIR/t.qcow2: Invalid argument
9ae3a8
+QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on: could not open disk image TEST_DIR/t.qcow2: Lazy refcounts require a qcow2 image with at least qemu 1.1 compatibility level
9ae3a8
 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=off
9ae3a8
 QEMU X.Y.Z monitor - type 'help' for more information
9ae3a8
@@ -162,21 +154,18 @@ QEMU X.Y.Z monitor - type 'help' for more information
9ae3a8
 (qemu) q?[K?[Dqu?[K?[D?[Dqui?[K?[D?[D?[Dquit?[K
9ae3a8
 
9ae3a8
 Testing: -drive file=TEST_DIR/t.qcow2,file.driver=qcow2
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.driver=qcow2: Can't use 'qcow2' as a block driver for the protocol level
9ae3a8
-QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.driver=qcow2: could not open disk image TEST_DIR/t.qcow2: Invalid argument
9ae3a8
+QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.driver=qcow2: could not open disk image TEST_DIR/t.qcow2: Can't use 'qcow2' as a block driver for the protocol level
9ae3a8
 
9ae3a8
 
9ae3a8
 === Parsing protocol from file name ===
9ae3a8
 
9ae3a8
 Testing: -hda foo:bar
9ae3a8
-QEMU_PROG: -hda foo:bar: Unknown protocol
9ae3a8
-QEMU_PROG: -hda foo:bar: could not open disk image foo:bar: No such file or directory
9ae3a8
+QEMU_PROG: -hda foo:bar: could not open disk image foo:bar: Unknown protocol
9ae3a8
 
9ae3a8
 Testing: -drive file=foo:bar
9ae3a8
-QEMU_PROG: -drive file=foo:bar: Unknown protocol
9ae3a8
-QEMU_PROG: -drive file=foo:bar: could not open disk image foo:bar: No such file or directory
9ae3a8
+QEMU_PROG: -drive file=foo:bar: could not open disk image foo:bar: Unknown protocol
9ae3a8
 
9ae3a8
 Testing: -drive file.filename=foo:bar
9ae3a8
-QEMU_PROG: -drive file.filename=foo:bar: could not open disk image ide0-hd0: No such file or directory
9ae3a8
+QEMU_PROG: -drive file.filename=foo:bar: could not open disk image ide0-hd0: Could not open 'foo:bar': No such file or directory
9ae3a8
 
9ae3a8
 *** done
9ae3a8
diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc
9ae3a8
index 1187b86..764a3eb 100644
9ae3a8
--- a/tests/qemu-iotests/common.rc
9ae3a8
+++ b/tests/qemu-iotests/common.rc
9ae3a8
@@ -123,7 +123,7 @@ _make_test_img()
9ae3a8
     fi
9ae3a8
 
9ae3a8
     # XXX(hch): have global image options?
9ae3a8
-    $QEMU_IMG create -f $IMGFMT $extra_img_options $img_name $image_size | \
9ae3a8
+    $QEMU_IMG create -f $IMGFMT $extra_img_options $img_name $image_size 2>&1 | \
9ae3a8
         sed -e "s#$IMGPROTO:$TEST_DIR#TEST_DIR#g" \
9ae3a8
             -e "s#$TEST_DIR#TEST_DIR#g" \
9ae3a8
             -e "s#$IMGFMT#IMGFMT#g" \
9ae3a8
-- 
9ae3a8
1.7.1
9ae3a8