aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2023-01-12 15:02:57 +0100
committerMichael S. Tsirkin <mst@redhat.com>2023-01-28 06:21:29 -0500
commitbe8e333138d8e95602b0e1343a95a376785f6dc3 (patch)
treef5ddc5582e68a84eed42e58de55f944603a3f815 /tests
parent5d1aee56676c82c3bf2f678a816c0821d362a77b (diff)
tests: acpi: add endpoint devices to bridges
to make sure that they are enumerated or ignored as expected Signed-off-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <20230112140312.3096331-26-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/qtest/bios-tables-test.c37
1 files changed, 29 insertions, 8 deletions
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index a8c17461c8..22b22c403d 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -875,7 +875,9 @@ static void test_acpi_piix4_tcg_bridge(void)
data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
test_vm_prepare("-S"
" -device pci-bridge,chassis_nr=1"
- " -device pci-bridge,bus=pci.1,addr=1.0,chassis_nr=2", &data);
+ " -device pci-bridge,bus=pci.1,addr=1.0,chassis_nr=2"
+ " -device pci-testdev,bus=pci.0,addr=5.0"
+ " -device pci-testdev,bus=pci.1", &data);
/* hotplugged bridges section */
qtest_qmp_device_add(data.qts, "pci-bridge", "hpbr",
@@ -884,6 +886,10 @@ static void test_acpi_piix4_tcg_bridge(void)
"{'bus': 'pci.1', 'addr': '0xf.1', 'chassis_nr': 4 }");
qtest_qmp_device_add(data.qts, "pci-bridge", "hpbrhost",
"{'bus': 'pci.0', 'addr': '4.0', 'chassis_nr': 5 }");
+ qtest_qmp_device_add(data.qts, "pci-testdev", "d1", "{'bus': 'pci.0' }");
+ qtest_qmp_device_add(data.qts, "pci-testdev", "d2", "{'bus': 'pci.1' }");
+ qtest_qmp_device_add(data.qts, "pci-testdev", "d3", "{'bus': 'hpbr', "
+ "'addr': '1.0' }");
qtest_qmp_send(data.qts, "{'execute':'cont' }");
qtest_qmp_eventwait(data.qts, "RESUME");
@@ -907,7 +913,9 @@ static void test_acpi_piix4_no_root_hotplug(void)
data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
test_acpi_one("-global PIIX4_PM.acpi-root-pci-hotplug=off "
"-device pci-bridge,chassis_nr=1 "
- "-device pci-bridge,bus=pci.1,addr=1.0,chassis_nr=2 ", &data);
+ "-device pci-bridge,bus=pci.1,addr=1.0,chassis_nr=2 "
+ "-device pci-testdev,bus=pci.0 "
+ "-device pci-testdev,bus=pci.1", &data);
free_test_data(&data);
}
@@ -922,7 +930,9 @@ static void test_acpi_piix4_no_bridge_hotplug(void)
data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
test_acpi_one("-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off "
"-device pci-bridge,chassis_nr=1 "
- "-device pci-bridge,bus=pci.1,addr=1.0,chassis_nr=2 ", &data);
+ "-device pci-bridge,bus=pci.1,addr=1.0,chassis_nr=2 "
+ "-device pci-testdev,bus=pci.0 "
+ "-device pci-testdev,bus=pci.1,addr=2.0", &data);
free_test_data(&data);
}
@@ -937,7 +947,9 @@ static void test_acpi_piix4_no_acpi_pci_hotplug(void)
data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
test_acpi_one("-global PIIX4_PM.acpi-root-pci-hotplug=off "
"-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off "
- "-device pci-bridge,chassis_nr=1", &data);
+ "-device pci-bridge,chassis_nr=1 "
+ "-device pci-testdev,bus=pci.0 "
+ "-device pci-testdev,bus=pci.1", &data);
free_test_data(&data);
}
@@ -982,7 +994,9 @@ static void test_acpi_q35_tcg_bridge(void)
data.variant = ".bridge";
data.required_struct_types = base_required_struct_types;
data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
- test_acpi_one("-device pci-bridge,chassis_nr=1", &data);
+ test_acpi_one("-device pci-bridge,chassis_nr=1,id=br1"
+ " -device pci-testdev,bus=pcie.0"
+ " -device pci-testdev,bus=br1", &data);
free_test_data(&data);
}
@@ -1001,8 +1015,11 @@ static void test_acpi_q35_multif_bridge(void)
" -device pci-bridge,bus=rp2,chassis_nr=4,id=br1"
" -device pcie-root-port,id=rphptgt1,port=0x0,chassis=5,addr=2.1"
" -device pcie-root-port,id=rphptgt2,port=0x0,chassis=6,addr=2.2"
- " -device pcie-root-port,id=rphptgt3,port=0x0,chassis=7,addr=2.3",
- &data);
+ " -device pcie-root-port,id=rphptgt3,port=0x0,chassis=7,addr=2.3"
+ " -device pci-testdev,bus=pcie.0,addr=2.4"
+ " -device pci-testdev,bus=pcie.0,addr=5.0"
+ " -device pci-testdev,bus=rp0,addr=0.0"
+ " -device pci-testdev,bus=br1", &data);
/* hotplugged bridges section */
qtest_qmp_device_add(data.qts, "pci-bridge", "hpbr1",
@@ -1010,7 +1027,11 @@ static void test_acpi_q35_multif_bridge(void)
qtest_qmp_device_add(data.qts, "pci-bridge", "hpbr2-multiif",
"{ 'bus': 'br1', 'addr': '2.2', 'chassis_nr': 129 }");
qtest_qmp_device_add(data.qts, "pcie-pci-bridge", "hpbr3",
- "{'bus': 'rp0', 'addr': '0.0' }");
+ "{'bus': 'rphptgt1', 'addr': '0.0' }");
+ qtest_qmp_device_add(data.qts, "pcie-root-port", "hprp",
+ "{'bus': 'rphptgt2', 'addr': '0.0' }");
+ qtest_qmp_device_add(data.qts, "pci-testdev", "hpnic",
+ "{'bus': 'rphptgt3', 'addr': '0.0' }");
qtest_qmp_send(data.qts, "{'execute':'cont' }");
qtest_qmp_eventwait(data.qts, "RESUME");