From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
Anthony Liguori <aliguori@amazon.com>,
Marcel Apfelbaum <marcel.a@redhat.com>,
Gabriel Somlo <somlo@cmu.edu>,
Stefan Hajnoczi <stefanha@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
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 [thread overview]
Message-ID: <1425293287-4426-17-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1425293287-4426-1-git-send-email-mst@redhat.com>
From: Igor Mammedov <imammedo@redhat.com>
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 <imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
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
next prev parent reply other threads:[~2015-03-02 10:59 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-02 10:58 [Qemu-devel] [PULL v3 00/26] pci, pc, virtio fixes and cleanups Michael S. Tsirkin
2015-03-02 10:58 ` [Qemu-devel] [PULL v3 01/26] balloon: call qdev_alias_all_properties for proxy dev in balloon class init Michael S. Tsirkin
2015-03-02 10:58 ` [Qemu-devel] [PULL v3 02/26] tpm: Extend sts register to 32 bit Michael S. Tsirkin
2015-03-02 10:58 ` [Qemu-devel] [PULL v3 03/26] tpm: Allow 32 & 16 bit accesses to the registers Michael S. Tsirkin
2015-03-02 10:58 ` [Qemu-devel] [PULL v3 04/26] tpm: Support for XFIFO register Michael S. Tsirkin
2015-03-02 10:58 ` [Qemu-devel] [PULL v3 05/26] tpm: Support for TIS selftest done flag Michael S. Tsirkin
2015-03-02 10:58 ` [Qemu-devel] [PULL v3 06/26] tpm: Support for capability flags of TIS 1.3 Michael S. Tsirkin
2015-03-02 10:58 ` [Qemu-devel] [PULL v3 07/26] pc: acpi-build: create PCI0._CRS dynamically Michael S. Tsirkin
2015-03-02 10:58 ` [Qemu-devel] [PULL v3 08/26] pc: acpi: drop manual hole punching for PCI hotplug resources Michael S. Tsirkin
2015-03-02 10:59 ` [Qemu-devel] [PULL v3 09/26] pc: acpi: drop manual hole punching for CPU " Michael S. Tsirkin
2015-03-02 10:59 ` [Qemu-devel] [PULL v3 10/26] pc: acpi: drop manual hole punching for GPE0 resources Michael S. Tsirkin
2015-03-02 10:59 ` [Qemu-devel] [PULL v3 11/26] pc: acpi-build: drop remaining ssdt_misc template Michael S. Tsirkin
2015-03-02 10:59 ` [Qemu-devel] [PULL v3 12/26] acpi: add acpi_irq_no_flags() term Michael S. Tsirkin
2015-03-02 10:59 ` [Qemu-devel] [PULL v3 13/26] pc: export applesmc IO port/len Michael S. Tsirkin
2015-03-02 10:59 ` [Qemu-devel] [PULL v3 14/26] pc: acpi-build: drop template patching and create Device(SMC) dynamically Michael S. Tsirkin
2015-03-02 10:59 ` [Qemu-devel] [PULL v3 15/26] tests: ACPI test blobs update due to PCI0._CRS changes Michael S. Tsirkin
2015-03-02 10:59 ` Michael S. Tsirkin [this message]
2015-03-02 10:59 ` [Qemu-devel] [PULL v3 17/26] tests: add ACPI blobs for qemu with bridge cases Michael S. Tsirkin
2015-03-02 10:59 ` [Qemu-devel] [PULL v3 18/26] pc: acpi-build: simplify PCI bus tree generation Michael S. Tsirkin
2015-03-02 10:59 ` [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 10:59 ` [Qemu-devel] [PULL v3 20/26] pc: acpi-build: drop template patching and create PCI bus tree dynamically Michael S. Tsirkin
2015-03-02 11:00 ` [Qemu-devel] [PULL v3 21/26] pc: acpi: remove not used anymore ssdt-[misc|pcihp].hex.generated blobs Michael S. Tsirkin
2015-03-02 11:00 ` [Qemu-devel] [PULL v3 22/26] acpi: make build_*() routines static to aml-build.c Michael S. Tsirkin
2015-03-02 11:00 ` [Qemu-devel] [PULL v3 23/26] pci: Give a few helpers internal linkage Michael S. Tsirkin
2015-03-02 11:00 ` [Qemu-devel] [PULL v3 24/26] pci-hotplug-old: Has been dead for five major releases, bury Michael S. Tsirkin
2015-03-02 11:00 ` [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 11:00 ` [Qemu-devel] [PULL v3 26/26] acpi-test-data: update after pci rewrite Michael S. Tsirkin
2015-03-02 14:32 ` [Qemu-devel] [PULL v3 00/26] pci, pc, virtio fixes and cleanups Michael S. Tsirkin
2015-03-02 19:03 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1425293287-4426-17-git-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=aliguori@amazon.com \
--cc=imammedo@redhat.com \
--cc=marcel.a@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=somlo@cmu.edu \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).