[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v3 16/26] tests: bios-tables-test: add support for te
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL v3 16/26] tests: bios-tables-test: add support for testing bridges |
Date: |
Mon, 2 Mar 2015 11:59:39 +0100 |
From: Igor Mammedov <address@hidden>
Adds alternative ACPI table blob selection for testing
non default QEMU configurations. If blob file for test
variant is not present, fallback to default blob.
With this change implement testing with a coldplugged
bridge.
Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
tests/bios-tables-test.c | 45 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 40 insertions(+), 5 deletions(-)
diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
index 4d0fa84..735ac61 100644
--- a/tests/bios-tables-test.c
+++ b/tests/bios-tables-test.c
@@ -40,6 +40,7 @@ typedef struct {
typedef struct {
const char *machine;
+ const char *variant;
uint32_t rsdp_addr;
AcpiRsdpDescriptor rsdp_table;
AcpiRsdtDescriptorRev1 rsdt_table;
@@ -396,13 +397,14 @@ static void dump_aml_files(test_data *data, bool rebuild)
int i;
for (i = 0; i < data->tables->len; ++i) {
+ const char *ext = data->variant ? data->variant : "";
sdt = &g_array_index(data->tables, AcpiSdtTable, i);
g_assert(sdt->aml);
if (rebuild) {
uint32_t signature = cpu_to_le32(sdt->header.signature);
- aml_file = g_strdup_printf("%s/%s/%.4s", data_dir, data->machine,
- (gchar *)&signature);
+ aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+ (gchar *)&signature, ext);
fd = g_open(aml_file, O_WRONLY|O_TRUNC|O_CREAT,
S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH);
} else {
@@ -509,7 +511,7 @@ static GArray *load_expected_aml(test_data *data)
{
int i;
AcpiSdtTable *sdt;
- gchar *aml_file;
+ gchar *aml_file = NULL;
GError *error = NULL;
gboolean ret;
@@ -517,6 +519,7 @@ static GArray *load_expected_aml(test_data *data)
for (i = 0; i < data->tables->len; ++i) {
AcpiSdtTable exp_sdt;
uint32_t signature;
+ const char *ext = data->variant ? data->variant : "";
sdt = &g_array_index(data->tables, AcpiSdtTable, i);
@@ -524,8 +527,15 @@ static GArray *load_expected_aml(test_data *data)
exp_sdt.header.signature = sdt->header.signature;
signature = cpu_to_le32(sdt->header.signature);
- aml_file = g_strdup_printf("%s/%s/%.4s", data_dir, data->machine,
- (gchar *)&signature);
+
+try_again:
+ aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+ (gchar *)&signature, ext);
+ if (data->variant && !g_file_test(aml_file, G_FILE_TEST_EXISTS)) {
+ g_free(aml_file);
+ ext = "";
+ goto try_again;
+ }
exp_sdt.aml_file = aml_file;
g_assert(g_file_test(aml_file, G_FILE_TEST_EXISTS));
ret = g_file_get_contents(aml_file, &exp_sdt.aml,
@@ -778,6 +788,17 @@ static void test_acpi_piix4_tcg(void)
free_test_data(&data);
}
+static void test_acpi_piix4_tcg_bridge(void)
+{
+ test_data data;
+
+ memset(&data, 0, sizeof(data));
+ data.machine = MACHINE_PC;
+ data.variant = ".bridge";
+ test_acpi_one("-machine accel=tcg -device pci-bridge,chassis_nr=1", &data);
+ free_test_data(&data);
+}
+
static void test_acpi_q35_tcg(void)
{
test_data data;
@@ -788,6 +809,18 @@ static void test_acpi_q35_tcg(void)
free_test_data(&data);
}
+static void test_acpi_q35_tcg_bridge(void)
+{
+ test_data data;
+
+ memset(&data, 0, sizeof(data));
+ data.machine = MACHINE_Q35;
+ data.variant = ".bridge";
+ test_acpi_one("-machine q35,accel=tcg -device pci-bridge,chassis_nr=1",
+ &data);
+ free_test_data(&data);
+}
+
int main(int argc, char *argv[])
{
const char *arch = qtest_get_arch();
@@ -805,7 +838,9 @@ int main(int argc, char *argv[])
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
qtest_add_func("acpi/piix4/tcg", test_acpi_piix4_tcg);
+ qtest_add_func("acpi/piix4/tcg/bridge", test_acpi_piix4_tcg_bridge);
qtest_add_func("acpi/q35/tcg", test_acpi_q35_tcg);
+ qtest_add_func("acpi/q35/tcg/bridge", test_acpi_q35_tcg_bridge);
}
ret = g_test_run();
unlink(disk);
--
MST
- [Qemu-devel] [PULL v3 06/26] tpm: Support for capability flags of TIS 1.3, (continued)
- [Qemu-devel] [PULL v3 06/26] tpm: Support for capability flags of TIS 1.3, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 09/26] pc: acpi: drop manual hole punching for CPU hotplug resources, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 07/26] pc: acpi-build: create PCI0._CRS dynamically, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 08/26] pc: acpi: drop manual hole punching for PCI hotplug resources, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 10/26] pc: acpi: drop manual hole punching for GPE0 resources, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 12/26] acpi: add acpi_irq_no_flags() term, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 11/26] pc: acpi-build: drop remaining ssdt_misc template, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 13/26] pc: export applesmc IO port/len, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 14/26] pc: acpi-build: drop template patching and create Device(SMC) dynamically, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 15/26] tests: ACPI test blobs update due to PCI0._CRS changes, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 16/26] tests: bios-tables-test: add support for testing bridges,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL v3 17/26] tests: add ACPI blobs for qemu with bridge cases, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 18/26] pc: acpi-build: simplify PCI bus tree generation, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 19/26] tests: ACPI: update pc/SSDT.bridge due to new alg of PCI tree creation, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 20/26] pc: acpi-build: drop template patching and create PCI bus tree dynamically, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 21/26] pc: acpi: remove not used anymore ssdt-[misc|pcihp].hex.generated blobs, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 23/26] pci: Give a few helpers internal linkage, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 22/26] acpi: make build_*() routines static to aml-build.c, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 25/26] acpi, mem-hotplug: use PC_DIMM_SLOT_PROP in acpi_memory_plug_cb()., Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 24/26] pci-hotplug-old: Has been dead for five major releases, bury, Michael S. Tsirkin, 2015/03/02
- [Qemu-devel] [PULL v3 26/26] acpi-test-data: update after pci rewrite, Michael S. Tsirkin, 2015/03/02