From 9bdabfbe722e4d47892dfea17ae4c1670e54123b Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 21 Jan 2020 10:52:03 +0100 Subject: iotests: Check for the availability of the required devices in 267 and 127 We are going to enable 127 in the "auto" group, but it only works if virtio-scsi and scsi-hd are available - which is not the case with QEMU binaries like qemu-system-tricore for example, so we need a proper check for the availability of these devices here. A very similar problem exists in iotest 267 - it has been added to the "auto" group already, but requires virtio-blk and thus currently fails with qemu-system-tricore for example. Let's also add aproper check there. Reviewed-by: Max Reitz Signed-off-by: Thomas Huth Message-id: 20200121095205.26323-5-thuth@redhat.com Signed-off-by: Max Reitz --- tests/qemu-iotests/127 | 2 ++ tests/qemu-iotests/267 | 2 ++ tests/qemu-iotests/common.rc | 14 ++++++++++++++ 3 files changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/qemu-iotests/127 b/tests/qemu-iotests/127 index b64926a..a4fc866 100755 --- a/tests/qemu-iotests/127 +++ b/tests/qemu-iotests/127 @@ -43,6 +43,8 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _supported_fmt qcow2 _supported_proto file +_require_devices virtio-scsi scsi-hd + IMG_SIZE=64K _make_test_img $IMG_SIZE diff --git a/tests/qemu-iotests/267 b/tests/qemu-iotests/267 index c296877..3146273 100755 --- a/tests/qemu-iotests/267 +++ b/tests/qemu-iotests/267 @@ -46,6 +46,8 @@ _require_drivers copy-on-read # and generally impossible with external data files _unsupported_imgopts 'refcount_bits=1[^0-9]' data_file +_require_devices virtio-blk + do_run_qemu() { echo Testing: "$@" diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index 9ccde32..8a6366c 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -713,5 +713,19 @@ _require_large_file() rm "$TEST_IMG" } +# Check that a set of devices is available in the QEMU binary +# +_require_devices() +{ + available=$($QEMU -M none -device help | \ + grep ^name | sed -e 's/^name "//' -e 's/".*$//') + for device + do + if ! echo "$available" | grep -q "$device" ; then + _notrun "$device not available" + fi + done +} + # make sure this script returns success true -- cgit v1.1