On 06/03/19 13:22, Igor Mammedov wrote: > adds simple arm/virt test case that starts guest with > bios-tables-test.aarch64.iso.qcow2 boot image which > initializes UefiTestSupport* structure in RAM once > guest is booted. > > * see commit: tests: acpi: add acpi_find_rsdp_address_uefi() helper > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > --- > v6: > * Since aarch64 TCG is broken on 32 bit arm host, > blacklist it till it's fixed > * add aarch64 to rebuild script list > v4: > * force test to use TCG accelerator > v3: > * use firmware blobs directly from pc-bios directory > * use bios-tables-test.aarch64.iso.qcow2 as test boot image > * drop leftover qtest-uefi-images-aarch64 iMakefile rule from > previos version (Laszlo) > * add Makefile rule to include bios-tables-test into > check-qtest-aarch64 target > v2: > * specify in test_data where board's RAM starts and RAM size > > tests/Makefile.include | 4 ++++ > tests/bios-tables-test.c | 18 ++++++++++++++++++ > tests/data/acpi/rebuild-expected-aml.sh | 2 +- > 3 files changed, 23 insertions(+), 1 deletion(-) > > diff --git a/tests/Makefile.include b/tests/Makefile.include > index 1865f6b..2334969 100644 > --- a/tests/Makefile.include > +++ b/tests/Makefile.include > @@ -267,6 +267,10 @@ check-qtest-arm-y += tests/hexloader-test$(EXESUF) > check-qtest-aarch64-y = tests/numa-test$(EXESUF) > check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF) > check-qtest-aarch64-y += tests/migration-test$(EXESUF) > +# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional
I think you could also capture the following link here, in a comment: # https://bugs.launchpad.net/qemu/+bug/1830872 > +ifneq ($(ARCH),arm) Can we exclude all 32-bit host arches, not just ARM? The discussion in LP#1830872 indicates aarch64-on-i386 can fail too (not this specific guest payload FWIW, but the "tests/memory" test). Other than that: Reviewed-by: Laszlo Ersek <ler...@redhat.com> Thanks, Laszlo > +check-qtest-aarch64-y += tests/bios-tables-test$(EXESUF) > +endif > > check-qtest-microblazeel-y += $(check-qtest-microblaze-y) > > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c > index 28d7d42..1242d63 100644 > --- a/tests/bios-tables-test.c > +++ b/tests/bios-tables-test.c > @@ -830,6 +830,22 @@ static void test_acpi_piix4_tcg_dimm_pxm(void) > test_acpi_tcg_dimm_pxm(MACHINE_PC); > } > > +static void test_acpi_virt_tcg(void) > +{ > + test_data data = { > + .machine = "virt", > + .accel = "tcg", > + .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd", > + .uefi_fl2 = "pc-bios/edk2-arm-vars.fd", > + .cd = > "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2", > + .ram_start = 0x40000000ULL, > + .scan_len = 128ULL * 1024 * 1024, > + }; > + > + test_acpi_one("-cpu cortex-a57", &data); > + free_test_data(&data); > +} > + > int main(int argc, char *argv[]) > { > const char *arch = qtest_get_arch(); > @@ -858,6 +874,8 @@ int main(int argc, char *argv[]) > qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); > qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm); > qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); > + } else if (strcmp(arch, "aarch64") == 0) { > + qtest_add_func("acpi/virt", test_acpi_virt_tcg); > } > ret = g_test_run(); > boot_sector_cleanup(disk); > diff --git a/tests/data/acpi/rebuild-expected-aml.sh > b/tests/data/acpi/rebuild-expected-aml.sh > index ff7e622..d285321 100755 > --- a/tests/data/acpi/rebuild-expected-aml.sh > +++ b/tests/data/acpi/rebuild-expected-aml.sh > @@ -12,7 +12,7 @@ > # This work is licensed under the terms of the GNU GPLv2. > # See the COPYING.LIB file in the top-level directory. > > -qemu_bins="x86_64-softmmu/qemu-system-x86_64" > +qemu_bins="x86_64-softmmu/qemu-system-x86_64 > aarch64-softmmu/qemu-system-aarch64" > > if [ ! -e "tests/bios-tables-test" ]; then > echo "Test: bios-tables-test is required! Run make check before this > script." >