On 05/02/19 16:51, Igor Mammedov wrote:
> By default test cases were run with 'kvm:tcg' accelerators to speed up
> tests execution. While it works for x86, were change of accelerator
> doesn't affect ACPI tables, the approach doesn't works for ARM usecase
> though.
>
> In arm/virt case, KVM mode requires using 'host' cpu model, which
> isn't available in TCG mode. That could be worked around with 'max'
> cpu model, which works both for KVM and TCG. However in KVM mode it
> is necessary to specify matching GIC version, which also could use
> 'max' value to automatically pick GIC version suitable for host's CPU.
> Depending on host cpu type, different GIC versions would be used,
> which in turn leads to different ACPI tables (APIC) generated.
> As result while comparing with reference blobs, test would fail if
> host's GIC version won't match the version on the host where
> reference blobs where generated.
>
> Let's keep testing simple for now and allow ARM tests run in TCG only
> mode. To do so introduce 'accel' parameter in test configuration, so
> test case could override default "kvm:tcg" with accelerator of choice.
>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
> tests/bios-tables-test.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
> index 8302ffc..39c1e24 100644
> --- a/tests/bios-tables-test.c
> +++ b/tests/bios-tables-test.c
> @@ -24,6 +24,7 @@
> #define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML"
>
> typedef struct {
> + const char *accel;
> const char *machine;
> const char *variant;
> const char *uefi_fl1;
> @@ -532,8 +533,8 @@ static void test_acpi_one(const char *params, test_data *data)
> args = g_strdup_printf("-machine %s,accel=%s -nodefaults -nographic "
> "-drive if=pflash,format=raw,file=%s,readonly "
> "-drive if=pflash,format=raw,file=%s,snapshot=on -cdrom %s %s",
> - data->machine, "kvm:tcg", data->uefi_fl1, data->uefi_fl2,
> - data->cd, params ? params : "");
> + data->machine, data->accel ? data->accel : "kvm:tcg",
> + data->uefi_fl1, data->uefi_fl2, data->cd, params ? params : "");
>
> } else {
> /* Disable kernel irqchip to be able to override apic irq0. */
> @@ -541,7 +542,8 @@ static void test_acpi_one(const char *params, test_data *data)
> "-net none -display none %s "
> "-drive id=hd0,if=none,file=%s,format=raw "
> "-device ide-hd,drive=hd0 ",
> - data->machine, "kvm:tcg", params ? params : "", disk);
> + data->machine, data->accel ? data->accel : "kvm:tcg",
> + params ? params : "", disk);
> }
>
> data->qts = qtest_init(args);
>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>