On Sun, 2 May 2021 00:36:36 +0200 Philippe Mathieu-Daudé <phi...@redhat.com> wrote:
> Now than we can probe if the TCG accelerator is available > at runtime with a QMP command, do it once at the beginning > and only register the tests we can run. > We can then replace the #ifdef'ry by an assertion. > > Reviewed-by: Eric Blake <ebl...@redhat.com> > Reviewed-by: Alex Bennée <alex.ben...@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > tests/qtest/bios-tables-test.c | 99 ++++++++++++++++++---------------- > 1 file changed, 52 insertions(+), 47 deletions(-) > > diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c > index 156d4174aa3..a4c7bddf6f3 100644 > --- a/tests/qtest/bios-tables-test.c > +++ b/tests/qtest/bios-tables-test.c > @@ -97,6 +97,7 @@ typedef struct { > QTestState *qts; > } test_data; > > +static bool tcg_accel_available; > static char disk[] = "tests/acpi-test-disk-XXXXXX"; > static const char *data_dir = "tests/data/acpi"; > #ifdef CONFIG_IASL > @@ -718,15 +719,11 @@ static void test_acpi_one(const char *params, test_data > *data) > char *args; > bool use_uefi = data->uefi_fl1 && data->uefi_fl2; > > -#ifndef CONFIG_TCG > - if (data->tcg_only) { > - g_test_skip("TCG disabled, skipping ACPI tcg_only test"); > - return; > - } > -#endif /* CONFIG_TCG */ > + assert(!data->tcg_only || tcg_accel_available); > > args = test_acpi_create_args(data, params, use_uefi); > data->qts = qtest_init(args); > + stray new line? > test_acpi_load_tables(data, use_uefi); > > if (getenv(ACPI_REBUILD_EXPECTED_AML)) { > @@ -1504,6 +1501,8 @@ int main(int argc, char *argv[]) > const char *arch = qtest_get_arch(); > int ret; > > + tcg_accel_available = qtest_has_accel("tcg"); > + > g_test_init(&argc, &argv, NULL); > > if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { > @@ -1512,56 +1511,62 @@ int main(int argc, char *argv[]) > return ret; > } > qtest_add_func("acpi/q35/oem-fields", test_acpi_oem_fields_q35); > - qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis); > - qtest_add_func("acpi/piix4", test_acpi_piix4_tcg); > qtest_add_func("acpi/oem-fields", test_acpi_oem_fields_pc); > - qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge); > + qtest_add_func("acpi/microvm/oem-fields", > test_acpi_oem_fields_microvm); > qtest_add_func("acpi/piix4/pci-hotplug/no_root_hotplug", > test_acpi_piix4_no_root_hotplug); > qtest_add_func("acpi/piix4/pci-hotplug/no_bridge_hotplug", > test_acpi_piix4_no_bridge_hotplug); > qtest_add_func("acpi/piix4/pci-hotplug/off", > test_acpi_piix4_no_acpi_pci_hotplug); > - qtest_add_func("acpi/q35", test_acpi_q35_tcg); > - qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge); > - qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64); > - qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi); > - qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi); > - qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp); > - qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp); > - qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp); > - qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp); > - qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem); > - qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); > - qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm); > - qtest_add_func("acpi/piix4/smm-compat", > - test_acpi_piix4_tcg_smm_compat); > - qtest_add_func("acpi/piix4/smm-compat-nosmm", > - test_acpi_piix4_tcg_smm_compat_nosmm); > - qtest_add_func("acpi/piix4/nohpet", test_acpi_piix4_tcg_nohpet); > - qtest_add_func("acpi/q35/nosmm", test_acpi_q35_tcg_nosmm); > - qtest_add_func("acpi/q35/smm-compat", > - test_acpi_q35_tcg_smm_compat); > - qtest_add_func("acpi/q35/smm-compat-nosmm", > - test_acpi_q35_tcg_smm_compat_nosmm); > - qtest_add_func("acpi/q35/nohpet", test_acpi_q35_tcg_nohpet); > - qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm); > - qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); > - qtest_add_func("acpi/piix4/acpihmat", test_acpi_piix4_tcg_acpi_hmat); > - qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat); > - qtest_add_func("acpi/microvm", test_acpi_microvm_tcg); > - qtest_add_func("acpi/microvm/usb", test_acpi_microvm_usb_tcg); > - qtest_add_func("acpi/microvm/rtc", test_acpi_microvm_rtc_tcg); > - qtest_add_func("acpi/microvm/ioapic2", > test_acpi_microvm_ioapic2_tcg); > - qtest_add_func("acpi/microvm/oem-fields", > test_acpi_oem_fields_microvm); > - if (strcmp(arch, "x86_64") == 0) { > - qtest_add_func("acpi/microvm/pcie", test_acpi_microvm_pcie_tcg); > + if (tcg_accel_available) { most of this can run without TCG if KVM is available, so why are you limiting it to TCG only or am I missing something? > + qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis); > + qtest_add_func("acpi/piix4", test_acpi_piix4_tcg); > + qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge); > + qtest_add_func("acpi/q35", test_acpi_q35_tcg); > + qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge); > + qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64); > + qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi); > + qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi); > + qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp); > + qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp); > + qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp); > + qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp); > + qtest_add_func("acpi/piix4/numamem", > test_acpi_piix4_tcg_numamem); > + qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); > + qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm); > + qtest_add_func("acpi/piix4/smm-compat", > + test_acpi_piix4_tcg_smm_compat); > + qtest_add_func("acpi/piix4/smm-compat-nosmm", > + test_acpi_piix4_tcg_smm_compat_nosmm); > + qtest_add_func("acpi/piix4/nohpet", test_acpi_piix4_tcg_nohpet); > + qtest_add_func("acpi/q35/nosmm", test_acpi_q35_tcg_nosmm); > + qtest_add_func("acpi/q35/smm-compat", > + test_acpi_q35_tcg_smm_compat); > + qtest_add_func("acpi/q35/smm-compat-nosmm", > + test_acpi_q35_tcg_smm_compat_nosmm); > + qtest_add_func("acpi/q35/nohpet", test_acpi_q35_tcg_nohpet); > + qtest_add_func("acpi/piix4/dimmpxm", > test_acpi_piix4_tcg_dimm_pxm); > + qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); > + qtest_add_func("acpi/piix4/acpihmat", > + test_acpi_piix4_tcg_acpi_hmat); > + qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat); > + qtest_add_func("acpi/microvm", test_acpi_microvm_tcg); > + qtest_add_func("acpi/microvm/usb", test_acpi_microvm_usb_tcg); > + qtest_add_func("acpi/microvm/rtc", test_acpi_microvm_rtc_tcg); > + qtest_add_func("acpi/microvm/ioapic2", > + test_acpi_microvm_ioapic2_tcg); > + if (strcmp(arch, "x86_64") == 0) { > + qtest_add_func("acpi/microvm/pcie", > test_acpi_microvm_pcie_tcg); > + } > } > } else if (strcmp(arch, "aarch64") == 0) { > - qtest_add_func("acpi/virt", test_acpi_virt_tcg); > - qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem); > - qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp); > - qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb); > + if (tcg_accel_available) { > + qtest_add_func("acpi/virt", test_acpi_virt_tcg); > + qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem); > + qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp); > + qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb); > + } > qtest_add_func("acpi/virt/oem-fields", test_acpi_oem_fields_virt); > } > ret = g_test_run();