[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 13/18] iotests: remove external calls to qemu_img_pipe()
From: |
John Snow |
Subject: |
[PATCH v2 13/18] iotests: remove external calls to qemu_img_pipe() |
Date: |
Mon, 21 Feb 2022 17:34:08 -0500 |
Several cases here rely on the knowledge that qemu_img_pipe() suppresses
*all* output on a successful case when the command being issued is
'create'.
065: This call's output is inspected, but it appears as if it's expected
to succeed. Replace this call with the checked qemu_img() variant
instead to get better diagnostics if/when qemu-img itself fails.
149: If the check_cipher_support check activates, we'll skip the
test. Otherwise, we re-raise the Exception and assert that the
image creation works.
237: We are only testing blanks against the output.
Remove them and use a simpler checked variant.
296: One create and one amend call. The create call is expected to
always succeed, but it needs a print statement to keep the output
file looking nice. The amend call is an intentional negative test;
use check=False and log the output.
After this patch, the only uses of qemu_img_pipe are internal to
iotests.py and will be removed in subsequent patches.
Signed-off-by: John Snow <jsnow@redhat.com>
---
tests/qemu-iotests/065 | 4 ++--
tests/qemu-iotests/149 | 8 ++++++--
tests/qemu-iotests/237 | 3 +--
tests/qemu-iotests/237.out | 3 ---
tests/qemu-iotests/296 | 13 +++++++------
5 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/tests/qemu-iotests/065 b/tests/qemu-iotests/065
index 9466ce7df4d..ba94e19349b 100755
--- a/tests/qemu-iotests/065
+++ b/tests/qemu-iotests/065
@@ -24,7 +24,7 @@ import os
import re
import json
import iotests
-from iotests import qemu_img, qemu_img_info, qemu_img_pipe
+from iotests import qemu_img, qemu_img_info
import unittest
test_img = os.path.join(iotests.test_dir, 'test.img')
@@ -54,7 +54,7 @@ class TestQemuImgInfo(TestImageInfoSpecific):
self.assertEqual(data['data'], self.json_compare)
def test_human(self):
- data = qemu_img_pipe('info', '--output=human', test_img).split('\n')
+ data = qemu_img('info', '--output=human', test_img).stdout.split('\n')
data = data[(data.index('Format specific information:') + 1)
:data.index('')]
for field in data:
diff --git a/tests/qemu-iotests/149 b/tests/qemu-iotests/149
index d49646ca60b..8b7dfb4e368 100755
--- a/tests/qemu-iotests/149
+++ b/tests/qemu-iotests/149
@@ -265,8 +265,12 @@ def qemu_img_create(config, size_mb):
"%dM" % size_mb]
iotests.log("qemu-img " + " ".join(args),
filters=[iotests.filter_test_dir])
- iotests.log(check_cipher_support(config, iotests.qemu_img_pipe(*args)),
- filters=[iotests.filter_test_dir])
+ try:
+ iotests.qemu_img(*args)
+ except subprocess.CalledProcessError as exc:
+ iotests.log(check_cipher_support(config, exc.output),
+ filters=[iotests.filter_test_dir])
+ raise
def qemu_io_image_args(config, dev=False):
"""Get the args for access an image or device with qemu-io"""
diff --git a/tests/qemu-iotests/237 b/tests/qemu-iotests/237
index 43dfd3bd40a..5ea13eb01fc 100755
--- a/tests/qemu-iotests/237
+++ b/tests/qemu-iotests/237
@@ -165,8 +165,7 @@ with iotests.FilePath('t.vmdk') as disk_path, \
iotests.log("")
for path in [ extent1_path, extent2_path, extent3_path ]:
- msg = iotests.qemu_img_pipe('create', '-f', imgfmt, path, '0')
- iotests.log(msg, [iotests.filter_testfiles])
+ iotests.qemu_img_create('-f', imgfmt, path, '0')
vm.add_blockdev('driver=file,filename=%s,node-name=ext1' % (extent1_path))
vm.add_blockdev('driver=file,filename=%s,node-name=ext2' % (extent2_path))
diff --git a/tests/qemu-iotests/237.out b/tests/qemu-iotests/237.out
index aeb97244928..62b88656778 100644
--- a/tests/qemu-iotests/237.out
+++ b/tests/qemu-iotests/237.out
@@ -129,9 +129,6 @@ Job failed: Cannot find device='this doesn't exist' nor
node-name='this doesn't
=== Other subformats ===
-
-
-
== Missing extent ==
{"execute": "blockdev-create", "arguments": {"job-id": "job0", "options":
{"driver": "vmdk", "file": "node0", "size": 33554432, "subformat":
"monolithicFlat"}}}
diff --git a/tests/qemu-iotests/296 b/tests/qemu-iotests/296
index 099a3eeaa52..f32ef037a58 100755
--- a/tests/qemu-iotests/296
+++ b/tests/qemu-iotests/296
@@ -76,7 +76,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase):
# create the encrypted block device using qemu-img
def createImg(self, file, secret):
- output = iotests.qemu_img_pipe(
+ iotests.qemu_img(
'create',
'--object', *secret.to_cmdline_object(),
'-f', iotests.imgfmt,
@@ -85,7 +85,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase):
file,
'1M')
- iotests.log(output, filters=[iotests.filter_test_dir])
+ print('') # Keeps 296.out prettier.
# attempts to add a key using qemu-img
def addKey(self, file, secret, new_secret):
@@ -99,7 +99,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase):
}
}
- output = iotests.qemu_img_pipe(
+ ret = iotests.qemu_img(
'amend',
'--object', *secret.to_cmdline_object(),
'--object', *new_secret.to_cmdline_object(),
@@ -108,10 +108,11 @@ class EncryptionSetupTestCase(iotests.QMPTestCase):
'-o', 'new-secret=' + new_secret.id(),
'-o', 'iter-time=10',
- "json:" + json.dumps(image_options)
- )
+ "json:" + json.dumps(image_options),
+ check=False # Expected to fail, output is logged.
+ )
- iotests.log(output, filters=[iotests.filter_test_dir])
+ iotests.log(ret.stdout, filters=[iotests.filter_test_dir])
###########################################################################
# open an encrypted block device
--
2.34.1
- [PATCH v2 03/18] iotests: Remove explicit checks for qemu_img() == 0, (continued)
- [PATCH v2 03/18] iotests: Remove explicit checks for qemu_img() == 0, John Snow, 2022/02/21
- [PATCH v2 05/18] iotests: fortify compare_images() against crashes, John Snow, 2022/02/21
- [PATCH v2 06/18] iotests: add qemu_img_json(), John Snow, 2022/02/21
- [PATCH v2 04/18] iotests: make qemu_img raise on non-zero rc by default, John Snow, 2022/02/21
- [PATCH v2 07/18] iotests: use qemu_img_json() when applicable, John Snow, 2022/02/21
- [PATCH v2 08/18] iotests: add qemu_img_info(), John Snow, 2022/02/21
- [PATCH v2 09/18] iotests: remove-bitmap-from-backing: use qemu_img_info(), John Snow, 2022/02/21
- [PATCH v2 10/18] iotests: add qemu_img_map() function, John Snow, 2022/02/21
- [PATCH v2 11/18] iotests: change supports_quorum to use qemu_img, John Snow, 2022/02/21
- [PATCH v2 12/18] iotests: replace unchecked calls to qemu_img_pipe(), John Snow, 2022/02/21
- [PATCH v2 13/18] iotests: remove external calls to qemu_img_pipe(),
John Snow <=
- [PATCH v2 14/18] iotests: move has_working_luks onto qemu_img(), John Snow, 2022/02/21
- [PATCH v2 15/18] iotests: remove qemu_img_log('create', ...) calls, John Snow, 2022/02/21
- [PATCH v2 16/18] iotests: remove qemu_img_pipe(), John Snow, 2022/02/21
- [PATCH v2 18/18] iotests: reimplement img_info_log in terms of qemu_img_log, John Snow, 2022/02/21
- [PATCH v2 17/18] iotests: make qemu_img_log() check log level, John Snow, 2022/02/21