mirror of https://github.com/xemu-project/xemu.git
tests/x86: Add 'q35' machine type to drive_del-test
Configure pci bridge setting to run tests on 'q35' machine type. Signed-off-by: Michael Labiuk <michael.labiuk@virtuozzo.com> Message-Id: <20220929223547.1429580-9-michael.labiuk@virtuozzo.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
5356d752ed
commit
eb4440ef3a
|
@ -252,6 +252,27 @@ static void test_cli_device_del(void)
|
||||||
qtest_quit(qts);
|
qtest_quit(qts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_cli_device_del_q35(void)
|
||||||
|
{
|
||||||
|
QTestState *qts;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* -drive/-device and device_del. Start with a drive used by a
|
||||||
|
* device that unplugs after reset.
|
||||||
|
*/
|
||||||
|
qts = qtest_initf("-drive if=none,id=drive0,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw "
|
||||||
|
"-machine q35 -device pcie-root-port,id=p1 "
|
||||||
|
"-device pcie-pci-bridge,bus=p1,id=b1 "
|
||||||
|
"-device virtio-blk-%s,drive=drive0,bus=b1,id=dev0",
|
||||||
|
qvirtio_get_dev_type());
|
||||||
|
|
||||||
|
device_del(qts, true);
|
||||||
|
g_assert(!has_drive(qts));
|
||||||
|
|
||||||
|
qtest_quit(qts);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_empty_device_del(void)
|
static void test_empty_device_del(void)
|
||||||
{
|
{
|
||||||
QTestState *qts;
|
QTestState *qts;
|
||||||
|
@ -288,6 +309,43 @@ static void test_device_add_and_del(void)
|
||||||
qtest_quit(qts);
|
qtest_quit(qts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void device_add_q35(QTestState *qts)
|
||||||
|
{
|
||||||
|
g_autofree char *driver = g_strdup_printf("virtio-blk-%s",
|
||||||
|
qvirtio_get_dev_type());
|
||||||
|
QDict *response =
|
||||||
|
qtest_qmp(qts, "{'execute': 'device_add',"
|
||||||
|
" 'arguments': {"
|
||||||
|
" 'driver': %s,"
|
||||||
|
" 'drive': 'drive0',"
|
||||||
|
" 'id': 'dev0',"
|
||||||
|
" 'bus': 'b1'"
|
||||||
|
"}}", driver);
|
||||||
|
g_assert(response);
|
||||||
|
g_assert(qdict_haskey(response, "return"));
|
||||||
|
qobject_unref(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_device_add_and_del_q35(void)
|
||||||
|
{
|
||||||
|
QTestState *qts;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* -drive/device_add and device_del. Start with a drive used by a
|
||||||
|
* device that unplugs after reset.
|
||||||
|
*/
|
||||||
|
qts = qtest_initf("-machine q35 -device pcie-root-port,id=p1 "
|
||||||
|
"-device pcie-pci-bridge,bus=p1,id=b1 "
|
||||||
|
"-drive if=none,id=drive0,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw");
|
||||||
|
|
||||||
|
device_add_q35(qts);
|
||||||
|
device_del(qts, true);
|
||||||
|
g_assert(!has_drive(qts));
|
||||||
|
|
||||||
|
qtest_quit(qts);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_drive_add_device_add_and_del(void)
|
static void test_drive_add_device_add_and_del(void)
|
||||||
{
|
{
|
||||||
QTestState *qts;
|
QTestState *qts;
|
||||||
|
@ -312,6 +370,25 @@ static void test_drive_add_device_add_and_del(void)
|
||||||
qtest_quit(qts);
|
qtest_quit(qts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_drive_add_device_add_and_del_q35(void)
|
||||||
|
{
|
||||||
|
QTestState *qts;
|
||||||
|
|
||||||
|
qts = qtest_init("-machine q35 -device pcie-root-port,id=p1 "
|
||||||
|
"-device pcie-pci-bridge,bus=p1,id=b1");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* drive_add/device_add and device_del. The drive is used by a
|
||||||
|
* device that unplugs after reset.
|
||||||
|
*/
|
||||||
|
drive_add_with_media(qts);
|
||||||
|
device_add_q35(qts);
|
||||||
|
device_del(qts, true);
|
||||||
|
g_assert(!has_drive(qts));
|
||||||
|
|
||||||
|
qtest_quit(qts);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_blockdev_add_device_add_and_del(void)
|
static void test_blockdev_add_device_add_and_del(void)
|
||||||
{
|
{
|
||||||
QTestState *qts;
|
QTestState *qts;
|
||||||
|
@ -336,6 +413,25 @@ static void test_blockdev_add_device_add_and_del(void)
|
||||||
qtest_quit(qts);
|
qtest_quit(qts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_blockdev_add_device_add_and_del_q35(void)
|
||||||
|
{
|
||||||
|
QTestState *qts;
|
||||||
|
|
||||||
|
qts = qtest_init("-machine q35 -device pcie-root-port,id=p1 "
|
||||||
|
"-device pcie-pci-bridge,bus=p1,id=b1");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* blockdev_add/device_add and device_del. The drive is used by a
|
||||||
|
* device that unplugs after reset, but it doesn't go away.
|
||||||
|
*/
|
||||||
|
blockdev_add_with_media(qts);
|
||||||
|
device_add_q35(qts);
|
||||||
|
device_del(qts, true);
|
||||||
|
g_assert(has_blockdev(qts));
|
||||||
|
|
||||||
|
qtest_quit(qts);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
g_test_init(&argc, &argv, NULL);
|
g_test_init(&argc, &argv, NULL);
|
||||||
|
@ -357,6 +453,17 @@ int main(int argc, char **argv)
|
||||||
test_empty_device_del);
|
test_empty_device_del);
|
||||||
qtest_add_func("/device_del/blockdev",
|
qtest_add_func("/device_del/blockdev",
|
||||||
test_blockdev_add_device_add_and_del);
|
test_blockdev_add_device_add_and_del);
|
||||||
|
|
||||||
|
if (qtest_has_machine("q35")) {
|
||||||
|
qtest_add_func("/device_del/drive/cli_device_q35",
|
||||||
|
test_cli_device_del_q35);
|
||||||
|
qtest_add_func("/device_del/drive/device_add_q35",
|
||||||
|
test_device_add_and_del_q35);
|
||||||
|
qtest_add_func("/device_del/drive/drive_add_device_add_q35",
|
||||||
|
test_drive_add_device_add_and_del_q35);
|
||||||
|
qtest_add_func("/device_del/blockdev_q35",
|
||||||
|
test_blockdev_add_device_add_and_del_q35);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return g_test_run();
|
return g_test_run();
|
||||||
|
|
Loading…
Reference in New Issue