[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 14/40] tests: acpi: extend bridge tests with hotplugged bridges
From: |
Igor Mammedov |
Subject: |
[PATCH 14/40] tests: acpi: extend bridge tests with hotplugged bridges |
Date: |
Thu, 12 Jan 2023 15:02:46 +0100 |
with previous commit fixing malformed PCNT calls to hotplugged
bridges, it should be possible add coldplug/hotplug test when
describing PCI topology in DSDT without breeaking CI.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
PS:
no need to update expected blobs as hotplugged bridges
shouldn't be visible (i.e. have its own slots described)
---
tests/qtest/bios-tables-test.c | 48 ++++++++++++++++++++++++++++------
1 file changed, 40 insertions(+), 8 deletions(-)
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index cb95f687fe..b65e864a9c 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -805,12 +805,15 @@ static char *test_acpi_create_args(test_data *data, const
char *params)
return args;
}
-static void test_acpi_one(const char *params, test_data *data)
+static void test_vm_prepare(const char *params, test_data *data)
{
- char *args;
-
- args = test_acpi_create_args(data, params);
+ char *args = test_acpi_create_args(data, params);
data->qts = qtest_init(args);
+ g_free(args);
+}
+
+static void process_acpi_tables(test_data *data)
+{
test_acpi_load_tables(data);
if (getenv(ACPI_REBUILD_EXPECTED_AML)) {
@@ -830,7 +833,12 @@ static void test_acpi_one(const char *params, test_data
*data)
}
qtest_quit(data->qts);
- g_free(args);
+}
+
+static void test_acpi_one(const char *params, test_data *data)
+{
+ test_vm_prepare(params, data);
+ process_acpi_tables(data);
}
static uint8_t base_required_struct_types[] = {
@@ -861,8 +869,21 @@ static void test_acpi_piix4_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 "
- "-device pci-bridge,bus=pci.1,addr=1.0,chassis_nr=2 ",
&data);
+ test_vm_prepare("-S"
+ " -device pci-bridge,chassis_nr=1"
+ " -device pci-bridge,bus=pci.1,addr=1.0,chassis_nr=2", &data);
+
+ /* hotplugged bridges section */
+ qtest_qmp_device_add(data.qts, "pci-bridge", "hpbr",
+ "{'bus': 'pci.1', 'addr': '2.0', 'chassis_nr': 3 }");
+ qtest_qmp_device_add(data.qts, "pci-bridge", "hpbr_multifunc",
+ "{'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_send(data.qts, "{'execute':'cont' }");
+ qtest_qmp_eventwait(data.qts, "RESUME");
+
+ process_acpi_tables(&data);
free_test_data(&data);
}
@@ -962,7 +983,7 @@ static void test_acpi_q35_multif_bridge(void)
.machine = MACHINE_Q35,
.variant = ".multi-bridge",
};
- test_acpi_one(
+ test_vm_prepare("-S"
" -device virtio-balloon,id=balloon0,addr=0x4.0x2"
" -device pcie-root-port,id=rp0,multifunction=on,"
"port=0x0,chassis=1,addr=0x2"
@@ -974,6 +995,17 @@ static void test_acpi_q35_multif_bridge(void)
" -device pcie-root-port,id=rphptgt3,port=0x0,chassis=7,addr=2.3",
&data);
+ /* hotplugged bridges section */
+ qtest_qmp_device_add(data.qts, "pci-bridge", "hpbr1",
+ "{'bus': 'br1', 'addr': '6.0', 'chassis_nr': 128 }");
+ 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' }");
+ qtest_qmp_send(data.qts, "{'execute':'cont' }");
+ qtest_qmp_eventwait(data.qts, "RESUME");
+
+ process_acpi_tables(&data);
free_test_data(&data);
}
--
2.31.1
- [PATCH 00/40] x86: fixing and cleaning up ACPI PCI code part 3, Igor Mammedov, 2023/01/12
- [PATCH 05/40] tests: acpi: update expected blobs, Igor Mammedov, 2023/01/12
- [PATCH 02/40] tests: acpi: cleanup arguments to make them more readable, Igor Mammedov, 2023/01/12
- [PATCH 18/40] pcihp: drop pcihp_bridge_en dependency when composing PCNT method, Igor Mammedov, 2023/01/12
- [PATCH 11/40] pci: acpihp: assign BSEL only to coldplugged bridges, Igor Mammedov, 2023/01/12
- [PATCH 27/40] x86: pcihp: acpi: prepare slot ignore rule to work with self describing bridges, Igor Mammedov, 2023/01/12
- [PATCH 15/40] tests: boot_sector_test(): make it multi-shot, Igor Mammedov, 2023/01/12
- [PATCH 03/40] tests: acpi: whitelist DSDT blobs for tests that use pci-bridges, Igor Mammedov, 2023/01/12
- [PATCH 09/40] pci: acpi hotplug: rename x-native-hotplug to x-do-not-expose-native-hotplug-cap, Igor Mammedov, 2023/01/12
- [PATCH 14/40] tests: acpi: extend bridge tests with hotplugged bridges,
Igor Mammedov <=
- [PATCH 08/40] x86: acpi: pcihp: clean up duplicate bridge_in_acpi assignment, Igor Mammedov, 2023/01/12
- [PATCH 12/40] x86: pcihp: fix invalid AML PCNT calls to hotplugged bridges, Igor Mammedov, 2023/01/12
- [PATCH 22/40] pcihp: do not put empty PCNT in DSDT, Igor Mammedov, 2023/01/12
- [PATCH 06/40] tests: acpi: cleanup use_uefi argument usage, Igor Mammedov, 2023/01/12
- [PATCH 17/40] tests: acpi: whitelist DSDT before refactoring acpi based PCI hotplug machinery, Igor Mammedov, 2023/01/12
- [PATCH 19/40] tests: acpi: update expected blobs, Igor Mammedov, 2023/01/12
- [PATCH 10/40] pcihp: piix4: do not call acpi_pcihp_reset() when ACPI PCI hotplug is disabled, Igor Mammedov, 2023/01/12
- [PATCH 29/40] pcihp: make bridge describe itself using AcpiDevAmlIfClass:build_dev_aml, Igor Mammedov, 2023/01/12
- [PATCH 01/40] tests: qtest: print device_add error before failing test, Igor Mammedov, 2023/01/12
- [PATCH 20/40] tests: acpi: whitelist DSDT before refactoring acpi based PCI hotplug machinery, Igor Mammedov, 2023/01/12