[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 15/22] tests/qtest: drive_del-test: Skip tests that require missin
From: |
Thomas Huth |
Subject: |
[PULL 15/22] tests/qtest: drive_del-test: Skip tests that require missing devices |
Date: |
Tue, 14 Feb 2023 12:21:41 +0100 |
From: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Message-Id: <20230208194700.11035-9-farosas@suse.de>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/drive_del-test.c | 65 ++++++++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/tests/qtest/drive_del-test.c b/tests/qtest/drive_del-test.c
index 9a750395a9..8a6f3ac963 100644
--- a/tests/qtest/drive_del-test.c
+++ b/tests/qtest/drive_del-test.c
@@ -16,6 +16,8 @@
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qlist.h"
+static const char *qvirtio_get_dev_type(void);
+
static bool look_for_drive0(QTestState *qts, const char *command, const char
*key)
{
QDict *response;
@@ -40,6 +42,19 @@ static bool look_for_drive0(QTestState *qts, const char
*command, const char *ke
return found;
}
+/*
+ * This covers the possible absence of a device due to QEMU build
+ * options.
+ */
+static bool has_device_builtin(const char *dev)
+{
+ gchar *device = g_strdup_printf("%s-%s", dev, qvirtio_get_dev_type());
+ bool rc = qtest_has_device(device);
+
+ g_free(device);
+ return rc;
+}
+
static bool has_drive(QTestState *qts)
{
return look_for_drive0(qts, "query-block", "device");
@@ -208,6 +223,11 @@ static void test_drive_del_device_del(void)
{
QTestState *qts;
+ if (!has_device_builtin("virtio-scsi")) {
+ g_test_skip("Device virtio-scsi is not available");
+ return;
+ }
+
/* Start with a drive used by a device that unplugs instantaneously */
qts = qtest_initf("-drive if=none,id=drive0,file=null-co://,"
"file.read-zeroes=on,format=raw"
@@ -232,6 +252,11 @@ static void test_cli_device_del(void)
const char *arch = qtest_get_arch();
const char *machine_addition = "";
+ if (!has_device_builtin("virtio-blk")) {
+ g_test_skip("Device virtio-blk is not available");
+ return;
+ }
+
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
machine_addition = "-machine pc";
}
@@ -256,6 +281,11 @@ static void test_cli_device_del_q35(void)
{
QTestState *qts;
+ if (!has_device_builtin("virtio-blk")) {
+ g_test_skip("Device virtio-blk is not available");
+ return;
+ }
+
/*
* -drive/-device and device_del. Start with a drive used by a
* device that unplugs after reset.
@@ -277,6 +307,11 @@ static void test_empty_device_del(void)
{
QTestState *qts;
+ if (!has_device_builtin("virtio-scsi")) {
+ g_test_skip("Device virtio-scsi is not available");
+ return;
+ }
+
/* device_del with no drive plugged. */
qts = qtest_initf("-device virtio-scsi-%s -device scsi-cd,id=dev0",
qvirtio_get_dev_type());
@@ -291,6 +326,11 @@ static void test_device_add_and_del(void)
const char *arch = qtest_get_arch();
const char *machine_addition = "";
+ if (!has_device_builtin("virtio-blk")) {
+ g_test_skip("Device virtio-blk is not available");
+ return;
+ }
+
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
machine_addition = "-machine pc";
}
@@ -330,6 +370,11 @@ static void test_device_add_and_del_q35(void)
{
QTestState *qts;
+ if (!has_device_builtin("virtio-blk")) {
+ g_test_skip("Device virtio-blk is not available");
+ return;
+ }
+
/*
* -drive/device_add and device_del. Start with a drive used by a
* device that unplugs after reset.
@@ -352,6 +397,11 @@ static void test_drive_add_device_add_and_del(void)
const char *arch = qtest_get_arch();
const char *machine_addition = "";
+ if (!has_device_builtin("virtio-blk")) {
+ g_test_skip("Device virtio-blk is not available");
+ return;
+ }
+
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
machine_addition = "-machine pc";
}
@@ -374,6 +424,11 @@ static void test_drive_add_device_add_and_del_q35(void)
{
QTestState *qts;
+ if (!has_device_builtin("virtio-blk")) {
+ g_test_skip("Device virtio-blk is not available");
+ return;
+ }
+
qts = qtest_init("-machine q35 -device pcie-root-port,id=p1 "
"-device pcie-pci-bridge,bus=p1,id=b1");
@@ -395,6 +450,11 @@ static void test_blockdev_add_device_add_and_del(void)
const char *arch = qtest_get_arch();
const char *machine_addition = "";
+ if (!has_device_builtin("virtio-blk")) {
+ g_test_skip("Device virtio-blk is not available");
+ return;
+ }
+
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
machine_addition = "-machine pc";
}
@@ -417,6 +477,11 @@ static void test_blockdev_add_device_add_and_del_q35(void)
{
QTestState *qts;
+ if (!has_device_builtin("virtio-blk")) {
+ g_test_skip("Device virtio-blk is not available");
+ return;
+ }
+
qts = qtest_init("-machine q35 -device pcie-root-port,id=p1 "
"-device pcie-pci-bridge,bus=p1,id=b1");
--
2.31.1
- [PULL 04/22] build: deprecate --enable-gprof builds and remove from CI, (continued)
- [PULL 04/22] build: deprecate --enable-gprof builds and remove from CI, Thomas Huth, 2023/02/14
- [PULL 05/22] tests/qtest/npcm7xx_pwm-test: Be less verbose unless V=2, Thomas Huth, 2023/02/14
- [PULL 06/22] hw/misc/sga: Remove the deprecated "sga" device, Thomas Huth, 2023/02/14
- [PULL 09/22] tests/qtest: Skip PXE tests for missing devices, Thomas Huth, 2023/02/14
- [PULL 07/22] include/hw: Do not include "hw/registerfields.h" in headers that don't need it, Thomas Huth, 2023/02/14
- [PULL 08/22] Do not include "qemu/error-report.h" in headers that do not need it, Thomas Huth, 2023/02/14
- [PULL 10/22] tests/qtest: Do not run lsi53c895a test if device is not present, Thomas Huth, 2023/02/14
- [PULL 12/22] tests/qtest: hd-geo-test: Check for missing devices, Thomas Huth, 2023/02/14
- [PULL 11/22] tests/qtest: Add dependence on PCIE_PORT for virtio-net-failover.c, Thomas Huth, 2023/02/14
- [PULL 14/22] tests/qtest: Skip unplug tests that use missing devices, Thomas Huth, 2023/02/14
- [PULL 15/22] tests/qtest: drive_del-test: Skip tests that require missing devices,
Thomas Huth <=
- [PULL 16/22] tests/qtest: Check for devices in bios-tables-test, Thomas Huth, 2023/02/14
- [PULL 18/22] tests/qemu-iotests: Require virtio-scsi-pci, Thomas Huth, 2023/02/14
- [PULL 17/22] tests/qtest: Do not include hexloader-test if loader device is not present, Thomas Huth, 2023/02/14
- [PULL 19/22] tests/qtest: bios-tables-test: Skip if missing configs, Thomas Huth, 2023/02/14
- [PULL 21/22] tests/tcg/s390x: Use -nostdlib for softmmu tests, Thomas Huth, 2023/02/14
- [PULL 20/22] tests/qtest: Don't build virtio-serial-test.c if device not present, Thomas Huth, 2023/02/14
- [PULL 22/22] hw/s390x/event-facility: Replace DO_UPCAST(SCLPEvent) by SCLP_EVENT(), Thomas Huth, 2023/02/14
- [PULL 13/22] test/qtest: Fix coding style in device-plug-test.c, Thomas Huth, 2023/02/14
- Re: [PULL 00/22] qtest, s390x and misc patches, Peter Maydell, 2023/02/15