tests/x86: Add subtest with 'q35' machine type to device-plug-test

Configure pci bridge setting to plug pci device and unplug.

Signed-off-by: Michael Labiuk <michael.labiuk@virtuozzo.com>
Message-Id: <20220929223547.1429580-3-michael.labiuk@virtuozzo.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
master
Michael Labiuk 2022-09-30 01:35:40 +03:00 committed by Thomas Huth
parent ea42a6c405
commit a12f1a7e56
1 changed files with 41 additions and 0 deletions

View File

@ -79,6 +79,19 @@ static void test_pci_unplug_request(void)
qtest_quit(qtest);
}
static void test_q35_pci_unplug_request(void)
{
QTestState *qtest = qtest_initf("-machine q35 "
"-device pcie-root-port,id=p1 "
"-device pcie-pci-bridge,bus=p1,id=b1 "
"-device virtio-mouse-pci,bus=b1,id=dev0");
process_device_remove(qtest, "dev0");
qtest_quit(qtest);
}
static void test_pci_unplug_json_request(void)
{
const char *arch = qtest_get_arch();
@ -97,6 +110,27 @@ static void test_pci_unplug_json_request(void)
qtest_quit(qtest);
}
static void test_q35_pci_unplug_json_request(void)
{
const char *port = "-device '{\"driver\": \"pcie-root-port\", "
"\"id\": \"p1\"}'";
const char *bridge = "-device '{\"driver\": \"pcie-pci-bridge\", "
"\"id\": \"b1\", "
"\"bus\": \"p1\"}'";
const char *device = "-device '{\"driver\": \"virtio-mouse-pci\", "
"\"bus\": \"b1\", "
"\"id\": \"dev0\"}'";
QTestState *qtest = qtest_initf("-machine q35 %s %s %s",
port, bridge, device);
process_device_remove(qtest, "dev0");
qtest_quit(qtest);
}
static void test_ccw_unplug(void)
{
QTestState *qtest = qtest_initf("-device virtio-balloon-ccw,id=dev0");
@ -176,5 +210,12 @@ int main(int argc, char **argv)
test_spapr_phb_unplug_request);
}
if (!strcmp(arch, "x86_64") && qtest_has_machine("q35")) {
qtest_add_func("/device-plug/q35-pci-unplug-request",
test_q35_pci_unplug_request);
qtest_add_func("/device-plug/q35-pci-unplug-json-request",
test_q35_pci_unplug_json_request);
}
return g_test_run();
}