tests/qtest: drive_del-test: Skip tests that require missing devices
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>
This commit is contained in:
parent
45ec78befb
commit
184c16d1ac
@ -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");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user